최근에 Yosemite로 업그레이드했지만 homebrew를 통해 얻은 gcc-4.9로 Accelerate Framework를 사용하는 C++ 프로그램을 컴파일하는 데 문제가있는 것 같습니다. 나는 누군가가 이것에 대한 해결책을 가지고 있는지 궁금 해서요? 이것은 이전 OSX 버전에서는 문제가되지 않았습니다.OSX에서 Accelerate Framework로 컴파일하기 Yosemite
예를 들어 다음 코드를 컴파일하는 것을 고려하십시오.
#include<iostream>
#include<Accelerate/Accelerate.h>
using namespace std;
{
return 0;
}
그 소리와 함께 모든 일의 작품 (애플은 LLVM 버전 6.0 (그 소리-600.0.54)) 컴파일 할 때 :
clang++ -flax-vector-conversions -o main.out main.cpp -framework Accelerate
그러나시는 g ++로 컴파일 - 4.9 (g ++ - 4.9 (브루 gcc49 4.9 0.1) 4.9.1) :
g++-4.9 -flax-vector-conversions -o main.out main.cpp -framework Accelerate
나는 다음과 같은 컴파일 오류를 얻을 :
> g++-4.9 -flax-vector-conversions -o main.out main.cpp -framework Accelerate
In file included from /usr/include/os/object.h:27:0,
from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/LinearAlgebra/base.h:6,
from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/LinearAlgebra/LinearAlgebra.h:10,
from /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/vecLib.h:65,
from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:20,
from main.cpp:2:
/usr/include/os/base.h:113:20: error: missing binary operator before token "("
#if __has_extension(attribute_overloadable)
^
/usr/include/os/base.h:119:54: error: missing binary operator before token "("
#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
^
In file included from /usr/include/dispatch/dispatch.h:51:0,
from /System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:56,
from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayConfiguration.h:8,
from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:41,
from /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage_Utilities.h:14,
from /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage.h:200,
from /System/Library/Frameworks/Accelerate.framework/Headers/Accelerate.h:24,
from main.cpp:2:
/usr/include/dispatch/object.h:143:15: error: expected unqualified-id before '^' token
typedef void (^dispatch_block_t)(void);
^
/usr/include/dispatch/object.h:143:15: error: expected ')' before '^' token
/usr/include/dispatch/object.h:362:3: error: 'dispatch_block_t' has not been declared
dispatch_block_t notification_block);
^
,536,913,632을 10
고마워,이 솔루션은 완벽하게 작동합니다. –
이것은 제 새로운 Mac에서 Accelerate를 사용하여 타사 프로그램을 컴파일하려고하는 저에게 효과적이었습니다. 감사! – user632657