如何在i686-apple-darwin11-llvm-g ++ - 4.2中加入框架?

时间:2012-12-13 01:36:10

标签: c++ osx-lion accelerate-framework

我正在尝试在小型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。

1 个答案:

答案 0 :(得分:1)

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

固定!