Boost C++ Libraries

PrevUpHomeNext

第7章 常见问题

目录

如何在 Jamfile 中获取特征的当前值?
我遇到了“实际目标的名称重复”错误。这是什么意思?
访问环境变量
如何控制属性的顺序?
如何在 Unix 上控制库的链接顺序?
我可以用 Boost.Jam 变量捕获外部程序的输出吗?
如何获取项目根目录(即 Jamroot)的位置?
如何更改单个文件的编译标志?
为什么 dll-pathhardcode-dll-paths 属性有用?
site-config.jam 中的目标
仅包含头文件的库
Boost.Build、b2bjam 和 Perforce Jam 之间有什么区别?

如何在 Jamfile 中获取特征的当前值?

这是不可能的,因为 Jamfile 没有任何特征的“当前”值,无论是工具集、构建变体还是其他任何内容。对于 Boost.Build 的单次运行,任何给定的主要目标都可以使用多个属性集进行构建。例如,用户可以在命令行上请求两个构建变体。或者一个库在从一个应用程序使用时被构建为共享库,而在从另一个应用程序使用时被构建为静态库。每个 Jamfile 只读取一次,因此通常没有一个可以在 Jamfile 中访问的特征的单个值。

只有在构建目标时,特征才具有特定的值,并且有两种方法可以使用该值

  • 使用条件需求或间接条件需求。请参阅“需求”部分
  • 定义一个自定义生成器和一个自定义主要目标类型。自定义生成器可以执行任意处理或属性。请参阅第6章,扩展器手册

PrevUpHomeNext