Boost C++库的默认命名约定为:
libboost_regex-vc71-mt-d-1_34.lib
所有库都内置在同一目录中。我想修改构建过程,以使文件名不包含目标体系结构或构建类型(版本可以)。我希望文件最终根据构建的体系结构而位于不同的目录中:
vc71/debug/libboost-1_34.libvc71/release/libboost-1_34.lib
有关如何执行此操作的任何想法?

最佳答案

您可以通过传递“--layout = system”来从库文件名中删除所有修饰。上面的示例显示了“vc71 / release”路径-没有开箱即用的方式来获取此布局。您可以使用一些hackign来做到这一点。在Jamroot中,找到“stage-proper”目标,该目标将位置指定为:

  <location>$(stage-locate)/lib

您可以修改它以根据属性指定不同的位置,例如:
  <variant>release:<location>$(stage-locate)/lib/release
  <variant>debug:<location>$(stage-locate)/lib/debug

请参阅Boost.Build website以获取更多文档

关于c++ - 没有文件名修饰的Build Boost?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1084982/

10-11 23:02
查看更多