2012-12-13 21 views
0

我想在一个小型的C++程序上使用Accelerate framework。我甚至没有使用XCode,只有一个简单的Makefile。如何使用i686-apple-darwin11-llvm-g ++ - 4.2包含加速框架?

当我下面的行添加到我的代码编译器会抱怨:

#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-苹果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

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

固定!