0

我正在尝试在一个小型 C++ 程序上使用Accelerate 框架。我什至没有使用 XCode,只有一个简单的 Makefile。

当我在代码中添加以下行时,编译器会抱怨:

#include <Accelerate/Accelerate.h>

错误如下:

In file included from /System/Library/Frameworks/vecLib.framework/Headers/vecLib.h:41,
                 from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:20,
                 from Diana.cpp:20:
/System/Library/Frameworks/vecLib.framework/Headers/vDSP.h:9008: error: expected identifier before numeric constant
/System/Library/Frameworks/vecLib.framework/Headers/vDSP.h:9008: error: expected `}' before numeric constant
/System/Library/Frameworks/vecLib.framework/Headers/vDSP.h:9008: error: expected unqualified-id before numeric constant
/System/Library/Frameworks/vecLib.framework/Headers/vDSP.h:9028: error: expected declaration before ‘}’ token

我正在使用的编译器是i686-apple-darwin11-llvm-g++-4.2,它是一个 gcc 4.2.1,我用来编译(而不是链接)的行是:

i686-apple-darwin11-llvm-g++-4.2 -D__MACOSX_CORE__ -c -o Diana.o Diana.cpp

编译时我应该添加一些额外的标志吗?我尝试添加“-framework Accelerate”,但它并没有改变任何东西,因为这应该只包含在链接过程中(对吗?)。

我用谷歌搜索了其中一些错误消息,但没有找到任何东西。

我真的很感激任何帮助。谢谢!

PS:我的 OS X 版本是 Lion 10.7.5,XCode 是 4.4.1。

4

1 回答 1

1

我想通了:我检查了 vDSP.h 第 9008 行的内容,问题是我在包含 Accelerate.h 之前声明了 FFT_FORWARD 常量。

固定的!

于 2012-12-13T01:44:32.813 回答