我正在cygwin上编译linux程序(与有Windows计算机的学生一起上课),并且遇到了兼容性问题。

我得到的错误是这样的:

`$ Make
g++ -fopenmp -c start.cpp errors.cpp
start.cpp: In function ‘int main(int, char**)’:
start.cpp:1184:54: error: ‘log10l’ was not declared in this scope
         else po[i]=log10l(p_rj[i]/(1-p_rj[i]));
                                                  ^
Makefile:7: recipe for target 'start.o' failed
Make: *** [start.o] Error 1`

未声明log10l。在cygwin的站点上对此进行了一些研究,我发现这个page列出了“未实现的系统接口(interface)”,并且log10l在那里。

我需要用兼容功能替换'log10l'吗,为什么它不兼容?

应用程序在我的linux机器上编译没有错误。

任何帮助将非常感激。

LP

最佳答案

如果该函数仅使用内部表达式的对数为10,则可以将其替换为

else po[i] = std::log10(p_rj[i]/(1-p_rj[i]));

只要你
#include <cmath>

关于c++ - Cygwin编译错误: “log10l” not recognized (declared),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26239893/

10-11 15:59