• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:gccの「-l」オプションとライブラリの関係)

gccの「-l」オプションとライブラリの関係

このQ&Aのポイント
  • gccの「-l」オプションは、ライブラリをリンクするためのオプションです。
  • リンクするライブラリは、-lオプションの後に指定します。
  • 指定したライブラリが見つからない場合は、「undefined reference」エラーが発生します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

リンカの仕様です. 基本的に, ライブラリについては「前にあるファイルで undefined だったものを後ろのファイルから探す」という動作をします. だから -lmilter test.c は NG でも test.c -lmilter の順なら OK.

noname#43437
質問者

補足

なるほど、そうだったのですね。 けれど謎なのは、milter.aではなくて、OS標準添付のmilter.soをリンクしていたときは、 -lmilter test.c でもリンクできていたのです。so と a ではリンクの仕方がちがう、 ということなのでしょうか。。?

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

う~ん, どうなんでしょうね.... .a と .so では機構が違いますから, 違う結果になってもおかしくないとは言えます... でも, なんか不親切な感じもしますね. いずれにしても, ライブラリの類は後ろにもっていった方が安全だと思いますが.

noname#43437
質問者

お礼

なるほど、そうですね。。 ありがとうございました!

関連するQ&A