2012-01-08 63 views
2

我的程序的一部分是計算sqrt的浮點數。 當我寫sqrt(1.0f);我成功編譯程序,但是當我寫sqrt(-1.0f); 編譯失敗與undefined reference to 'sqrt' - 我想,在這種情況下,nan值將返回...... 我編譯程序uing GCC。 當我用visual studio編譯它時,它會被成功編譯並帶有負面的參數給sqrt。 怎樣的問題可以解決 謝謝未定義引用`sqrt'

+0

的gcc -o myprog.c中-lm MYPROG的-l以包括數學庫-lm庫米。 – 2012-01-08 19:41:38

回答

5

您必須添加在大多數基於Unix的系統的-lm標誌,如:

編譯使用:

gcc -c file.c 

然後鏈接使用:

gcc -o program file.o -lm 

或者,如果你不想分開的兩個編譯步驟,簡單的寫:

gcc -o program file.c -lm 
4

-lm鏈路與數學庫鏈接

+0

你能否給出一個理由。我試着在頭文件中包含,但後來遇到了問題中提到的錯誤。 – 2016-11-27 18:06:09