私はUbuntu(Linux)システムに静的ライブラリがあることを確認しようとしてきました。いつ発見され、どのサフィックスがこれを識別しますか?
答え1
UbuntuなどのDebian派生システムでは、システムに付属の静的ライブラリ(手動ではなく/経由apt
でインストールされています)には通常サフィックスが付いています。dpkg
/usr/lib/<target-triplet>/
.a
たとえば、私のx86-64 debianシステムでは、次のようになります。
$ ls /usr/lib/x86_64-linux-gnu/*.a
/usr/lib/x86_64-linux-gnu/libBrokenLocale.a
/usr/lib/x86_64-linux-gnu/libFS.a
/usr/lib/x86_64-linux-gnu/libGLU.a
/usr/lib/x86_64-linux-gnu/libICE.a
/usr/lib/x86_64-linux-gnu/libImlib2.a
...
apt-get install <package>-dev
*.so
これらのライブラリは通常動的ライブラリとともにインストールされます。
それにもかかわらず、ライブラリを直接インストールするいくつかのパッケージがあります/usr/lib
。libgraphicsmagick1-dev。
コンパイラは、以下にいくつかの「内部」ライブラリ(など)が好きでインストールします。gcc
たとえば、次のようになります。clang
libstdc++
/usr/lib/<compiler-name>/...
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/libgcc.a
他のディストリビューションは異なるルールに従うことができます。たとえば、rhel / centosでは、すべての開発ライブラリが/usr/lib64/
またはによって/usr/lib32/
コンパイルされます。コンパイルファイルは、静的であるか動的であるかにかかわらず、コンパイラがライブラリを見つける場所を常に正確に伝えます。<package>-devel-*
gcc -v