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
リンクが失敗するのはなぜですか?
always typed gcc -lm file.c
; Ubuntuの最新バージョンまで、これは機能していました。インターネットでは、スタイルが悪いという提案がありますが、機能します。これは現在変更されているようです。
最後に-lm
を使用する必要があります。
これは、gccがmontecarlo_time.o
に出会った後に未解決のシンボルが見つかり、そのシンボルを解決できるライブラリまたはその他のライブラリが見つからないためです。