2016-04-24 45 views
-1

的Eclipse 3.8.1 Linux Mint的gcc的-lm不能解決未定義的參考`反正切」

添加-lm到項目/ C/C++編譯/設置/ GCCç鏈接/命令:

gcc -lm 

控制檯消息:

Building target: Nicomedes 
Invoking: GCC C Linker 
gcc -lm -o "Nicomedes" ./Nicomedes.o 
./Nicomedes.o: In function `main': 
/home/bogwan/work/Nicomedes/Debug/../Nicomedes.c:244: undefined reference to `pow' 
/home/bogwan/work/Nicomedes/Debug/../Nicomedes.c:258: undefined reference to `atan' 
/home/bogwan/work/Nicomedes/Debug/../Nicomedes.c:260: undefined reference to `atan' 
collect2: error: ld returned 1 exit status 
make: *** [Nicomedes] Error 1 

07:29:58 Build Finished (took 108ms) 
+2

你的連接順序是錯誤的。使它成爲'gcc -o「Nicomedes」./Nicomedes.o -lm'。在鏈接序列中,需要符號定義的文件必須位於提供定義的文件之前。所以在對象文件之後的庫。 –

+0

@MikeKinghan:不知道你爲什麼發表評論。這是正確的答案,因此值得讚賞。 –

回答

0

你的連接順序是錯誤的。讓它成爲gcc -o「Nicomedes」./Nicomedes.o -lm。 在鏈接序列中,需要符號定義的文件必須位於提供定義的文件之前 。所以在對象文件之後的庫。

在Eclipse中,設置C/C++編譯 - >設置 - >GCCÇ鏈接 - >命令 用來設置你想要做你的鏈接,而不是你的聯動方案 選項。在C/C設置庫選項++編譯 - >設置 - >GCCÇ鏈接 - >