如何在 i686-apple-darwin11-llvm-g++-4.2 中包含加速框架

How to include Accelerate framework with i686-apple-darwin11-llvm-g++-4.2?

本文关键字:包含 加速 框架 i686-apple-darwin11-llvm-g++-4      更新时间:2023-10-16

我正在尝试在一个小C++程序上使用加速框架。我甚至没有使用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。

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

固定!