
私はライブラリとヘッダファイルの場所がディストリビューションによって大きく異なることを発見しました。たとえば、Fedoraにはがあり、/usr/lib64/libbfd.a
Ubuntuにはがあります/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 --cflags
pkg-config --libs