ディストリビューションでライブラリとヘッダファイルのすべての可能な場所を見つける方法は?

ディストリビューションでライブラリとヘッダファイルのすべての可能な場所を見つける方法は?

私はライブラリとヘッダファイルの場所がディストリビューションによって大きく異なることを発見しました。たとえば、Fedoraにはがあり、/usr/lib64/libbfd.aUbuntuにはがあります/usr/lib/x86_64-linux-gnu/libbfd.a。またはFedoraに1つ/usr/lib/gcc/x86_64-redhat-linux/10/include/stdatomic.h、Ubuntuに1つあります。/usr/lib/gcc/x86_64-linux-gnu/10/include/stdatomic.h

各リリースの場所のリストを保持せずに確認する場所を知る方法はありますか?

ベストアンサー1

あなたはできますC前処理器に尋ねる(少なくともGCCフロントエンドベースのものすべて):

$ cpp -v /dev/null -o /dev/null
...
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/10/include
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-v' '-o' '/dev/null' '-mtune=generic' '-march=x86-64'

これは、ヘッダー検索パス(「#include <...>ここで検索を開始する:」と「検索リストの終わり」の間のエントリ)とライブラリ検索パス(指定された値LIBRARY_PATH)を提供します。

一部のライブラリは、(ライブラリ名を含む)として見つけることができるpkg-configファイルを提供します。pkg-config --cflagspkg-config --libs

おすすめ記事