尝试在 Xcode 中构建包含 <cmath> 的小型简单项目时,出现以下错误:
cmath: '*' has not been declared'::acos' has not been declaredIn file included from /Xcode4/Projects/libraryLAFMath/Classes/libraryLAFMath.cpIn 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...
错误日志还提示所有其他数学函数, sinpow 等,而不仅仅是 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/

10-11 04:04