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

解決済みの質問

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

質問は題名の通りです。

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

なぜなのでしょうか。
教えてくださいm(_ _)m

投稿日時 - 2008-06-10 23:21:07

QNo.4090971

暇なときに回答ください

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

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

ってことでしょう。

投稿日時 - 2008-06-11 11:46:47

お礼

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

投稿日時 - 2008-06-12 06:12:33

ANo.4

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(3件中 1~3件目)

ANo.3

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

投稿日時 - 2008-06-11 09:31:20

お礼

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

投稿日時 - 2008-06-12 05:52:24

ANo.2

歴史的経緯でしょうね。原初のCコンパイラからの継続性というか。
ライブラリはMakefileで指定するものという使い方が定着した後では、ヘッダでライブラリを指定されては混乱します。

あとは、libmではありませんが、同じヘッダファイルで、何種類かのライブラリを差し替えて使うようなケースがあったと思うのですが、ちょっと思い出せません。

投稿日時 - 2008-06-11 02:29:04

お礼

なるほど、確かに混乱しますね。

> あとは、libmではありませんが...
そんな場合もあるのですね。知りませんでした。

投稿日時 - 2008-06-12 05:49:45

ANo.1

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

投稿日時 - 2008-06-11 01:40:20

あわせてチェックしたい
  • [C++]VC2008のC++がECLIPSE(GCC)で使えない ...
  • C/C++の.libについて教えてください。 ...
  • ライブラリの使用について質問です。 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら