2012-12-13 6 views
0

작은 C++ 프로그램에서 Accelerate framework을 사용하려고합니다. Xcode를 사용하지 않고 간단한 Makefile 만 사용합니다.i686-apple-darwin11-llvm-g ++ - 4.2를 사용하여 Accelerate 프레임 워크를 포함하는 방법?

내 코드에 다음 줄을 추가 할 때 컴파일러는 불평 :

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 :

#include <Accelerate/Accelerate.h> 

오류는 다음과 같다 -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입니다.

답변

1

나는 알아 냈습니다 : vDSP.h의 9008 행에 무엇이 있는지 확인했고 Accelerate.h를 포함하기 전에 FFT_FORWARD 상수를 선언하고 있다는 것이 문제였습니다.

고정!