int i; double value; for(i = 0; i < CONSTANT; i++) { value = (double)pow(2,i); }
尝试编译此代码产生“未定义的引用”pow“”错误.
包括或排除math.h没有任何区别,因为它最终被包括在内.
将2.0升级到硬编码的电源可以正常工作,但如果用包含i的表达式替换指数,则一切都会失败.
我究竟做错了什么?谢谢.
要解决你的问题,添加
-lm
到你的gcc命令行(只要你使用gcc).这告诉编译器与数学库链接.
似乎正在发生的是,如果你正在使用
pow(2.0,3);
编译器实现这个表达式求值为一个常量,只做替换.
因此,不能调用库函数.