2016-04-24 87 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Ç链接 - >