当前位置: 技术问答>linux和unix
在Linux操作系统下,gcc编译的怪问题,pow(2.0,3.0)=?
来源: 互联网 发布时间:2016-07-17
本文导语: 在Linux操作系统下,gcc编译的怪问题,pow(2.0,3.0)=? 在程序中, int main(void){ double x,y,z; x=2.0; y=3.0; z=pow(x,y);//////但z=pow(2.0,3.0)正确地得出8.000000 竟编译通不过,出现错误: undefined reference to 'pow' | gcc -lm ...
在Linux操作系统下,gcc编译的怪问题,pow(2.0,3.0)=?
在程序中,
int main(void){
double x,y,z;
x=2.0;
y=3.0;
z=pow(x,y);//////但z=pow(2.0,3.0)正确地得出8.000000
竟编译通不过,出现错误:
undefined reference to 'pow'
在程序中,
int main(void){
double x,y,z;
x=2.0;
y=3.0;
z=pow(x,y);//////但z=pow(2.0,3.0)正确地得出8.000000
竟编译通不过,出现错误:
undefined reference to 'pow'
|
gcc -lm *.c
|
#include只是包含了要使用的数学函数库的头文件,其中仅仅包含了相关数学函数的声明,其真正的函数体以库的形式封装起来了,所以在链接的时候需要将该库链接进来,即-lm就可以了!
|
正解,看来不仅仅涉及编译的问题,对原理也要有所了解
|
你用了pow()的数学函数库,当然要用 -lm 链接该库了。