我正在尝试在小型C ++程序上使用Accelerate framework。我甚至不使用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”,但它没有改变任何东西,因为这应该只包含在链接过程中(我是对的吗?)。
我用Google搜索了一些错误消息,但我没有找到任何内容。
我真的很感激任何帮助。谢谢!
PS:我的OS X版本是Lion 10.7.5,XCode是4.4.1。
答案 0 :(得分:1)
我明白了:我检查了vDSP.h的第9008行,问题是我在包含Accelerate.h之前声明了一个FFT_FORWARD常量。
固定!