使用boost构建链接到OS X框架

时间:2011-04-01 09:54:40

标签: c++ macos boost frameworks boost-build

如何使用boost build链接到OS X框架?我尝试了以下(在Jamroot中):

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上的框架?

2 个答案:

答案 0 :(得分:3)

简单的方法:

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

这当然是假设您正在使用“darwin”工具集。并且已正确设置,以便它知道您已安装的所有SDK。

答案 1 :(得分:1)

以下有效,但假设您使用支持“-frameworks”链接器选项的编译器构建:

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

exe Test : main.cpp CoreFoundation ;

这是一个非常合理的假设,因为你想链接到一个框架!