2013-07-28 2 views
0

OS X 10.8에서 프레임 워크로 Python (3.4 dev 버전)을 소스에서 빌드하고있었습니다. 필자는 Mac OS X 내부 구조의 상대적으로 초보자이며 OS X 프레임 워크 헤더가 왜 이러한 오류를 일으켰는지 알 수 없습니다. 누군가 포인터를 좀 주시겠습니까?Mac OS X에서 프레임 워크로 파이썬을 빌드 Mountain Lion : 헤더 오류

필자는 Apple에서 제공 한 LLVM 컴파일러 대신 최신 Mac 용 GNU gcc를 사용합니다. 아마도 호환성 문제가 발생했을 수 있습니다.

gcc -Wno-unused-result -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -o FileSettings.o -c ./FileSettings.m 
In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:123:0, 
       from ./FileSettings.h:9, 
       from ./FileSettings.m:9: 
/System/Library/Frameworks/Foundation.framework/Headers/NSTask.h:69:24: error: expected identifier or ‘(’ before ‘^’ token 
@property (copy) void (^terminationHandler)(NSTask *) NS_AVAILABLE(10_7, NA); 
         ^
/System/Library/Frameworks/Foundation.framework/Headers/NSTask.h:72:1: error: expected identifier before ‘end’ 
@end 
^ 
In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:159:0, 
       from ./FileSettings.h:9, 
       from ./FileSettings.m:9: 
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:36:15: error: expected identifier or ‘(’ before ‘^’ token 
typedef void (^NSUserScriptTaskCompletionHandler)(NSError *error); 
      ^
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:37:1: error: unknown type name ‘NSUserScriptTaskCompletionHandler’ 
- (void)executeWithCompletionHandler:(NSUserScriptTaskCompletionHandler)handler; 
^ 
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:53:15: error: expected identifier or ‘(’ before ‘^’ token 
typedef void (^NSUserUnixTaskCompletionHandler)(NSError *error); 
      ^
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:54:1: error: unknown type name ‘NSUserUnixTaskCompletionHandler’ 
- (void)executeWithArguments:(NSArray *)arguments completionHandler:(NSUserUnixTaskCompletionHandler)handler; 
^ 
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:68:15: error: expected identifier or ‘(’ before ‘^’ token 
typedef void (^NSUserAppleScriptTaskCompletionHandler)(NSAppleEventDescriptor *result, NSError *error); 
      ^
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:69:1: error: unknown type name ‘NSUserAppleScriptTaskCompletionHandler’ 
- (void)executeWithAppleEvent:(NSAppleEventDescriptor *)event completionHandler:(NSUserAppleScriptTaskCompletionHandler)handler; 
^ 
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:86:15: error: expected identifier or ‘(’ before ‘^’ token 
typedef void (^NSUserAutomatorTaskCompletionHandler)(id result, NSError *error); 
      ^
/System/Library/Frameworks/Foundation.framework/Headers/NSUserScriptTask.h:87:1: error: unknown type name ‘NSUserAutomatorTaskCompletionHandler’ 
- (void)executeWithInput:(id <NSSecureCoding>)input completionHandler:(NSUserAutomatorTaskCompletionHandler)handler; 
^ 
In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:160:0, 
       from ./FileSettings.h:9, 
       from ./FileSettings.m:9: 
/System/Library/Frameworks/Foundation.framework/Headers/NSXPCConnection.h:46:11: error: expected identifier or ‘(’ before ‘^’ token 
    void (^_interruptionHandler)(); 
     ^
make[2]: *** [FileSettings.o] Error 1 
make[1]: *** [install_PythonLauncher] Error 2 
make: *** [frameworkinstallapps] Error 2 

답변

0

오류는 Apple이 C, C++ and Objective-C languages에 대해 개발 한 '블록'확장명과 정확하게 일치합니다. GCC (GNU 버전)는 블록 발생을 인식하지 못하고 불평합니다.

관련 문제