2012-01-26 26 views
1

我嘗試編譯桌面OS X Cocoa應用程序:無法編譯使用GCD函數調用

dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"Hello World"); }); 

不過,我得到以下編譯時錯誤:函數dispatch_sync的

隱式聲明

我已導入這些行:

#import <dispatch/dispatch.h> 
#import <dispatch/queue.h> 
#import <dispatch/base.h> 

的基材S DK設置爲10.6。還有什麼要尋找?我是否錯過了導入?

任何想法?

+1

你唯一需要的導入'#進口<可可/ Cocoa.h>'我懷疑你已經離開。否則,科林回答說,請檢查您的部署目標。 – NJones

回答

5

嗯,你不需要做任何事情,因爲GCD是libSystem的一部分,因此應該免費獲得它。您是否將部署目標設置爲10.6之前的某個項目?

+0

部署目標是10.6。原來這個項目使用GCC 4.0。一旦我去了LLVM GCC 4.2,我就可以使用GCD。謝謝 – Cliff

+0

啊,這也可以解釋它,甚至沒有想到編譯器是一個問題。很高興你找到它的原因。 –

+0

你知道libSystem何時鏈接嗎? –

0

必須確保編譯器設置爲LLVM GCC 4.2(是GCC 4.0)