gcc/g++の"-l"オプションの意味
gcc/g++の"-l"オプションの意味について調べてみました。
1.問題点
「C/C++のオブジェクトファイルをldコマンドでリンクする方法(その2)」で示した最後の1行、
-lstdc++ -lm -lgcc_s -lgcc -lc
で"-l"は、リンクするライブラリを指定するためのオプションです。
が、"-l"の後に続く「stdc++」「m」「gcc_s」「c」が何を指しているのか、さっぱりわかりません。
ということで、"-l"オプションの意味について調べてみました。
2."-l"オプションの意味
前項のオプションを例に説明します。
それぞれのオプションは、下記のライブラリを検索します。
- libstdc++.a
- libm.a
- libgcc_s.a
- libgcc.a
- libc.a
具体的には、"-l"オプションはリンクのときに使われるオプションで、"-l"の後に続く文字列に"lib"、後方に".a"をつけたライブラリを検索します。
この規則については、ldコマンドのmanページに、次のように記載されています。
-lar
アーカイブファイル ar をリンクするファイルのリストに加える。このオプションは何回でも指定でき る。 ld は ar が指定されるごとに、 libar.a が見つかるまで検索パ スを探す。
Posted by yujiro このページの先頭に戻る
トラックバックURL
コメントする
greeting