2012-02-04 34 views
20

Tôi đang cố gắng biên dịch thực hiện thuật toán lựa chọn ngẫu nhiên RFC 3797 bởi Donald Eastlake (mã: http://kambing.ui.ac.id/minix/other/rfc3797/). Tuy nhiên, tôi nhận được một lỗi mối liên kết:tham chiếu không xác định đối với 'log'

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

tôi đang cố gắng để làm cho nó với các Makefile cung cấp, mà rõ ràng liên kết chống lại libraray toán, nhưng tôi vẫn nhận được lỗi:

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

thế nào tôi có thể biên dịch chương trình này không?

+1

Bạn có '#include '? – Mysticial

+4

Bạn có thể thử 'cc -o randomselection rfc3797.c MD5.c -lm' không? – cnicutar

+1

@Shade Không, không sao, tôi rất vui vì nó hoạt động :-) Bạn có thể chấp nhận câu trả lời fajrans thay thế. Và đây là [C FAQ] (http://c-faq.com/lib/libsearch.html) về chủ đề này. – cnicutar

Trả lời

30

Tôi không biết lý do là gì, nhưng nếu bạn di chuyển -lm đến cùng, nó sẽ biên dịch.

$ 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

Lý do khá thẳng về phía trước nếu bạn nghĩ về cách liên kết các thư viện được thực hiện. –

+0

Để mở rộng về những gì Kerrek đang đề cập đến và vay từ cnicutar ở trên, điều này giải thích cách liên kết hoạt động với tham chiếu đến thứ tự đối số: http://c-faq.com/lib/libsearch.html – staticfloat

Các vấn đề liên quan