を使用してpkg-config
自分のコードにライブラリを追加するために必要なリンクフラグを見つけることができると仮定し、cairoライブラリを追加する必要がある場合は、次のように適切な-l
フラグを見つけることができるとします。
> pkg-config --libs cairo
> -lcairo
逆(例えば、リンクフラグ - >ライブラリ名)をどのように見つけますか? flag を呼び出して、どのライブラリが追加されるかを知りたいとしましょう。-lm
どうすればいいですか?
ベストアンサー1
-lmフラグを呼び出して、どのライブラリが追加されるかを知りたいとしましょう。どうすればいいですか?
次の部分は-l
ライブラリの名前です。そのバイナリにはプレフィックスが付いているので、lib
その名前で見つけることができます。
> whereis libm
libm: /usr/lib64/libm.a /usr/lib64/libm.so
> whereis libcairo
libcairo: /usr/lib64/libcairo.so
など。
それでも説明がない場合は、whereis
grepの出力を試すこともできますldconfig -p
(参考資料を参照man ldconfig
)。
> ldconfig -p | grep "libm.so"
libm.so.6 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so.6
libm.so.6 (libc6, OS ABI: Linux 2.6.32) => /lib/libm.so.6
libm.so (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so
この場合、「libm」の後に「.so」を追加しましたが、これは必須ではありませんが、「libmfoo ...」、「libmbar ...」などとの一致を保存します。-l
Linked Shared Object( ) ライブラリを参照するので、非常に.so
簡単です。