2012-02-04 11 views
20

Donald Eastlake(コード:http://kambing.ui.ac.id/minix/other/rfc3797/)によるRFC 3797ランダム選択アルゴリズムの実装をコンパイルしようとしています。しかし、私は、リンカエラーを取得しています:`log 'への未定義参照

rfc3797.c:(.text+0xe7f): undefined reference to `log' 

私は明示的に数学のlibrarayにリンク提供されるMakefile、でそれを作るためにしようとしていますが、私はまだエラーを取得:

どう
cc -lm -o randomselection rfc3797.c MD5.c 

このプログラムをコンパイルできますか?

+1

「#」を含めましたか? – Mysticial

+4

'cc -o randomselection rfc3797.c MD5.c -lm'を試すことができますか? – cnicutar

+1

@シェードいいえ、それは大丈夫です、私はうまく働いています:-)あなたは代わりにファジャランスの答えを受け入れることができます。そして、ここには[C FAQ](http://c-faq.com/lib/libsearch.html)があります。 – cnicutar

答えて

30

理由はわかりませんが、最後に-lmを移動するとコンパイルされます。

$ cc -o randomselection rfc3797.c MD5.c -lm 
rfc3797.c: In function ‘getinteger’: 
rfc3797.c:183:3: warning: format not a string literal and no format arguments [-Wformat-security] 
+4

ライブラリをリンクする方法について考えると、その理由はかなり単純です。 –

+0

Kerrekが参照しているものを拡張し、上のcnicutarから借りて、これはリンクがどのように引数の順序を参照して動作するかを説明します:http://c-faq.com/lib/libsearch.html – staticfloat

関連する問題