2

如何使用 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 上的框架?

4

2 回答 2

3

简单的方法:

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

这当然是假设您使用的是“darwin”工具集。并正确设置它,使其了解您已安装的所有 SDK。

于 2011-04-05T05:21:14.490 回答
1

以下工作,但假设您正在使用支持“-frameworks”链接器选项的编译器进行构建:

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

exe Test : main.cpp CoreFoundation ;

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

于 2011-04-02T03:52:58.313 回答