尝试在 Xcode 中构建包含 <cmath>
的小型简单项目时,出现以下错误:cmath: '*' has not been declared
'::acos' has not been declared
In file included from /Xcode4/Projects/libraryLAFMath/Classes/libraryLAFMath.cp
In file included from /Xcode4/Projects/libraryLAFMath/Classes/libraryLAFMath.h
'::acos' has not been declared in /Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/c++/4.2.1/cmath
...
错误日志还提示所有其他数学函数, sin
、 pow
等,而不仅仅是 acos
。我查看了 cmath
源代码,它从 math.h
中引用了全局定义的相应数学函数,即 ::acos
等。由于根错误提示 ::acos
不存在,因此人们会假设找不到 math.h
,但是 a) 它存在, 和 b) 我会收到一个不同的错误,提示找不到 math.h。
源代码如下:
图书馆LAFMath.cp:
#include "libraryLAFMath.h"
图书馆LAFMath.h:
#include <cmath>
struct libraryLAFMath {
void test() {
double a = std::acos(0);
}
};
现在,我有另一个来自外部源的项目,它使用
cmath
并且编译得很好。我尝试比较这两个项目之间的build设置,但它们几乎相同。我正在使用 LLVM GCC 4.2 编译器,但在使用 GCC 4.2 时得到类似的结果,所以我相信这不是编译器设置问题。我是 Xcode 开发的新手,任何帮助表示赞赏。
最佳答案
我的项目中有一个名为 Math.h
的文件,其中大写 M
,似乎编译器感到困惑并试图包含 Math.h
而不是 math.h
。
关于c++ - 在 xcode 中包含 cmath 时出现错误 : '::acos' has not been declared, 等,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3939704/