0

「elf.h」などのヘッダー ファイル、または「ElfData::addToSection()」などのメソッド名があります。

対応するライブラリ ファイルの名前と場所 (/usr/lib/libelf.a や /usr/lib/libelf.so.0.8.13 など) を知りたいです。この問題を解決する方法は何ですか。そして、最善の方法は何ですか。

また、指定したライブラリ ファイルに一致するヘッダー、関数を知りたいです。運用システム=Ubuntu Linux。

たぶん、これらの質問はばかげているかもしれません:)しかし、返信していただければ幸いです。

4

1 に答える 1

1

新しいライブラリの場合、多くの場合、pkg-configツールを使用できます。これにリンクするパッケージの名前を指定すると、適切なコンパイラ/リンカー オプションが提供されます。

$ pkg-config --cflags glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
$ pkg-config --libs glib-2.0
-lglib-2.0

これをあなたのに入れることができるようにMakefile

LIBS = `pkg-config --libs glib-2.0` -lm      # link with glib and libm
CFLAGS = -O2 `pkg-config --cflags glib-2.0`

(インクルードディレクトリだけで、ヘッダーは見つかりません。)

をサポートしていないライブラリpkg-configの場合、ライブラリが属しているヘッダーを特定する、またはその逆の、単一の正しい方法はありません。通常、この知識をビルド システムに手動でコーディングするか、必要な識別子またはシンボルの複数のライブラリ/ヘッダーをチェックできるGNU autotoolsのようなものを使用します。

于 2012-04-20T15:22:44.300 に答える