リンカは、-L
オプションで指定されたディレクトリと標準のシステム ディレクトリ (通常は/lib
と/usr/lib
. オプションを使用していない場合でも、-L
GCC は通常、いくつかをリンカーに渡すので、使用しない限り、GCC 独自のライブラリ (C++ 標準ライブラリなど) を見つけることができます-nostdlib
。GCC は、環境変数-L
の内容のオプションも追加します。LIBRARY_PATH
GCC がリンカーに渡すオプションを確認するには-v
(詳細)、リンカーが使用するライブラリを確認するには-Wl,--trace
、GCC に渡すことができます--trace
。
/usr/bin/ld: mode elf_x86_64
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/crt1.o
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/crtbegin.o
/tmp/ccJHrbSx.o
-lglut (/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/libglut.so)
-lcurl (/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/libcurl.so)
-lgcc_s (/usr/lib/gcc/x86_64-redhat-linux/4.7.2/libgcc_s.so)
/lib64/libc.so.6
(/usr/lib64/libc_nonshared.a)elf-init.oS
/lib64/ld-linux-x86-64.so.2
-lgcc_s (/usr/lib/gcc/x86_64-redhat-linux/4.7.2/libgcc_s.so)
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/crtend.o
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/crtn.o
-lglut
これは、システム上のおよびlcurl
libs で見つかったライブラリを示しています。-L/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64
私のシステムではGCCがリンカーに渡されたため、ライブラリはそのパスで見つかりました(でコンパイルすることで表示されます-v
)
を使用してこれらのパスを正規化できますreadlink
$ readlink -f /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/
/usr/lib64/