• ベストアンサー

gccでわざわざ-lmのようにライブラリを指定しなきゃいけない理由は?

質問は題名の通りです。 例えばmath.hに  #pragma comment(lib, "libm.a") のように元々書いてあれば 自分で指定せずに済むのではないでしょうか? (gccがpragmaをサポートしているかは知りませんが。。。) なぜなのでしょうか。 教えてくださいm(_ _)m

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

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.4

ソースを書く人とコンパイルする人は同じとは限らないし、数学ライブラリが libm.aだと限ったわけでもないから、ソースにライブラリのファイル名を書くのはダメ。 ってことでしょう。

kirikirkaz
質問者

お礼

ヘッダに対応するライブラリの名前は決まってなかったんですね・・・なるほど・・・

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

複数のライブラリをリンクするときリンクの順番とかも影響するのでそのときは困りますね。

kirikirkaz
質問者

お礼

なるほど、そういえばgccではリンクの順番が影響を受けるんですね。 まだよくわかってないのですが。。。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

歴史的経緯でしょうね。原初のCコンパイラからの継続性というか。 ライブラリはMakefileで指定するものという使い方が定着した後では、ヘッダでライブラリを指定されては混乱します。 あとは、libmではありませんが、同じヘッダファイルで、何種類かのライブラリを差し替えて使うようなケースがあったと思うのですが、ちょっと思い出せません。

kirikirkaz
質問者

お礼

なるほど、確かに混乱しますね。 > あとは、libmではありませんが... そんな場合もあるのですね。知りませんでした。

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

リンカが理解してくれないから無意味です.

関連するQ&A