Я пытаюсь использовать Ускорение рамок на маленькой программе 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-яблоко-darwin11-LLVM-г ++ — 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.
Я понял это: я проверил, что было в строке 9008 файла vDSP.h, и проблема заключалась в том, что я объявил константу FFT_FORWARD перед тем, как включить Accelerate.h.
Исправлена!
Других решений пока нет …