2012-11-07 35 views
1

什麼是從Qt項目中使用Mac OS SDKs最明智的方式?您需要有一個到基礎SDK(MacOSX10.X.sdk)的路徑,指向您需要的標題的路徑,並指出您正在使用的框架。qmake項目和Mac OS X SDK

在我在我的親文件這樣的時刻(從這裏與幫助; Qt, Qmake and Mac Os X SDKs):

MAC_SDK = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk 
if(!exists($$MAC_SDK)) { 
    error("The selected Mac OSX SDK does not exist at $$MAC_SDK!") 
} 
QMAKE_MAC_SDK = $$MAC_SDK 

INCLUDEPATH += $$QMAKE_MAC_SDK/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers 

DEPENDPATH += $$QMAKE_MAC_SDK/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers 

LIBS += -framework CoreFoundation 

的軟件開發工具包是在Xcode應用程序包,什麼是地獄?我想知道是否有一個環境變量存儲SDK的路徑。此外,切換SDK版本,我必須去MAC_SDK路徑並將10.7更改爲其他內容,這是最好的方法嗎?

+0

您不應該手動設置SDK的路徑,它會在編譯時自動設置。只需使用你需要的框架。這就是所有 –

+0

看來我可以只逃脫: INCLUDEPATH + = $$ QMAKE_MAC_SDK /系統/資源庫/框架/ CoreFoundation.framework /頭 DEPENDPATH + = $$ QMAKE_MAC_SDK /系統/資源庫/框架/ CoreFoundation.framework /頭文件 LIBS + = -framework CoreFoundation – oggmonster

+0

好了,但我仍然不確定是否需要添加Frameworks路徑,因爲它應該由qmake自動添加。 –

回答

1

Xcode的最新版本(我認爲從4.4開始)現在將所有內容都保存在Xcode包中,而不是之前的/Developer。雜項工具和應用程序是一個單獨的下載。

在使用Xcode(特別是xcodebuild)查詢SDK之外,不知道有任何環境變量?

我已經使用了相同的方法來選擇和使用qmake項目中的SDK。通常情況下,您會使用最新的SDK進行開發,而這些SDK不會經常更改。您可能需要或需要OS(=> SDK)的minimum version,因此將使用-mmacosx-version-min=10.X編譯器選項來聲明此操作。