2011-04-01 83 views
2

如何使用增強版本鏈接到OS X框架?我曾嘗試以下(在Jamroot中):鏈接到帶有增強版本的OS X框架

frameworks_directory = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/" ; 

lib CoreFoundation 
: 
: <file>$(frameworks_directory)"CoreFoundation.framework/CoreFoundation" 
: 
: <include>$(frameworks_directory)"CoreFoundation.framework/Headers/" ; 

exe Test : main.cpp CoreFoundation ; 

然而,這產生以下錯誤(縮短空間):

error: target { /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation. } has no type 

我想這是因爲的CoreFoundation文件沒有擴展名,因此boost-build無法推斷其類型。有什麼方法可以明確指定文件的類型,或者以其他方式鏈接到OS X上的框架?

回答

3

最簡單的方法:

exe Test : main.cpp : <framework>CoreFoundation ; 

當然,這是假設你正在使用的「達爾文」的工具集。並已正確設置,以便它知道您已安裝的所有SDK。

1

下面的作品,但假設您正在使用支持該編譯器建設「-frameworks」鏈接器選項:

alias CoreFoundation : : : : <linkflags>"-framework CoreFoundation" ; 

exe Test : main.cpp CoreFoundation ; 

這是一個非常合理的假設,因爲你要鏈接到一個框架!