Boost C++库的默认命名约定为:libboost_regex-vc71-mt-d-1_34.lib
所有库都内置在同一目录中。我想修改构建过程,以使文件名不包含目标体系结构或构建类型(版本可以)。我希望文件最终根据构建的体系结构而位于不同的目录中:vc71/debug/libboost-1_34.lib
vc71/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/