0

有没有办法(不修改源文件)来指定我想用 msvc 来构建 boost,其中有一组附加选项在调试中,另一组在发布变体中?在某些 config.jam 中,甚至在命令行中更好?喜欢

using msvc : : <compileflags>-DRELEASE_DEFINES; - only if variant=release
using msvc : : <compileflags>-DDEBUG_DEFINES; - only if variant=debug
using msvc : : <compileflags>-DLL_SPECIFIC_STUFF; - only if link=shared

我能够找到一个建议来使用像 variant=debug/somefeature=somevalue 这样的命令行,但这不起作用。

4

1 回答 1

2

好吧,经过一些实验,我能够通过 project-config.jam 使其工作,这是一个示例:

import option ;
import toolset ;

using msvc ;

toolset.flags msvc.compile CFLAGS <variant>release : "/GL /arch:SSE2 /fp:fast" : unchecked ;
toolset.flags msvc.compile CFLAGS <variant>debug : "/RTCc /RTC1 /GS" : unchecked ;
toolset.flags msvc.archive AROPTIONS <variant>release/<link>static : "/LTCG" : unchecked ;
toolset.flags msvc.link LINKFLAGS <variant>release/<link>shared : "/LTCG /OPT:REF /OPT:ICF" : unchecked ;
toolset.flags msvc.link LINKFLAGS <link>shared : "/PDB:c:\\Lib\\boost\\stage\\lib\\" : unchecked ;

option.set keep-going : false ; 
于 2014-01-13T20:56:44.460 回答