web-dev-qa-db-ja.com

ldは数学ライブラリを見つけることができません

Ubuntu 12.04 LTSをインストールしたばかりで、数学関数へのリンクに問題があります(から)。 gccをインストールし、ソースを正常にコンパイルできました。しかし、しようとしています:

gcc -lm montecarlo_time.o parsercfile.o -o trmcfl

フォームのいくつかのエラーを示します。

montecarlo_time.o: In function `main:
/home/karthik/Research/MC/trmcfl/Dumps/whiteScaling/18-Sep-2012/montecarlo_time.c:75: undefined reference to asin`

ただし、これらのファイルはすべて存在します(ldconfig -v -Nに表示されます)

/lib/i386-linux-gnu/libm.so.6
/lib64/libm.so.6
/usr/lib/i386-linux-gnu/libm.a
/usr/lib/i386-linux-gnu/libm.so
/usr/lib/i386-linux-gnu/xen/libm.a
/usr/lib64/libm.a
/usr/lib64/libm.so

リンクが失敗するのはなぜですか?

2
Karthik

always typed gcc -lm file.c; Ubuntuの最新バージョンまで、これは機能していました。インターネットでは、スタイルが悪いという提案がありますが、機能します。これは現在変更されているようです。

2
Anthony Quas

最後に-lmを使用する必要があります。

これは、gccがmontecarlo_time.oに出会った後に未解決のシンボルが見つかり、そのシンボルを解決できるライブラリまたはその他のライブラリが見つからないためです。

2
Deepak