标签: boost
我需要使用非标准的标志集构建Boost(由于Boost线程和C ++ / CLI之间的冲突)。我正在使用CXXFLAGS添加所需的标志(/ clr),但是这个标志与Boost默认/ EHs标志冲突(/ clr暗示/ EHa与/ EHs不兼容),因此需要被抑制。是否有类似CXXFLAGS的机制来抑制默认的Boost标志,还是必须手动编辑所有编译器规范文件?
答案 0 :(得分:2)
无法删除这些特定选项。您需要做的是指定一个与您尝试构建的版本匹配的特定构建变体。如果您查看msvc.jam(see here),您会找到一个部分,其中列出了它放入的各种/EH*选项(see here)。如您所见,第三个匹配C ++ / CLI所需的/EHa。这转换为使用bjam asynch-exceptions=on extern-c-nothrow=on <rest of the args>进行构建。显然不需要exception-handling-on,因为默认情况下你会得到/EHs,并且首先不会看到{{1}}选项。
msvc.jam
/EH*
/EHa
bjam asynch-exceptions=on extern-c-nothrow=on <rest of the args>
exception-handling-on
/EHs