2011-02-11 24 views
0

私はmath.hのいくつかの関数を使用しているので、特に-lmフラグを使用してGCCリンカーに問題があります。 `に未定義 参照:`階」に-lmフラグ付きGCCリンカーの問題

のmain.c :(テキスト+ 0x901)を未定義 参照:。

のmain.c :(テキスト+ 0x8e5):私は、次のエラーを取得します

myprogram: main.o 
    gcc -Wall -pedantic -o myprogram main.o 

main.o: main.c foo.h bar.h 
    gcc -Wall -pedantic -lm main.c 

おそらく私が見渡せるてる愚かな何かが、私は間違いなくNだ:切り上げ」

ここに私のメイクファイルの関連部分ですメイクファイルについては専門家です。

+0

math.hを必ず含めましたか? – Nick

答えて

4

-lmはリンカーフラグであるため、上記のリンクルールに追加する必要があります(誤ったルールに追加した)。

+0

それはそれほど愚かな間違いだったことを知って、感謝!制限時間が過ぎると受け入れます。 –

+1

@タイラーそれ以上のことがあります。 user611775が以下のように-lmがオブジェクトの後に来る必要があります。そして、main.oルールは、main.oではなく-.outを生成します。なぜなら、-o $ @が欠落しているからです。デフォルトルールを使用し、ルールに入れる代わりにCFLAGS = Wall -pedanticを設定する必要があります。 –

関連する問題