- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:gccの「-l」オプションとライブラリの関係)
gccの「-l」オプションとライブラリの関係
このQ&Aのポイント
- gccの「-l」オプションは、ライブラリをリンクするためのオプションです。
- リンクするライブラリは、-lオプションの後に指定します。
- 指定したライブラリが見つからない場合は、「undefined reference」エラーが発生します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リンカの仕様です. 基本的に, ライブラリについては「前にあるファイルで undefined だったものを後ろのファイルから探す」という動作をします. だから -lmilter test.c は NG でも test.c -lmilter の順なら OK.
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
う~ん, どうなんでしょうね.... .a と .so では機構が違いますから, 違う結果になってもおかしくないとは言えます... でも, なんか不親切な感じもしますね. いずれにしても, ライブラリの類は後ろにもっていった方が安全だと思いますが.
質問者
お礼
なるほど、そうですね。。 ありがとうございました!
補足
なるほど、そうだったのですね。 けれど謎なのは、milter.aではなくて、OS標準添付のmilter.soをリンクしていたときは、 -lmilter test.c でもリンクできていたのです。so と a ではリンクの仕方がちがう、 ということなのでしょうか。。?