Как убрать флаг компилятора при сборке Boost - PullRequest
1 голос
/ 01 июня 2010

Мне нужно собрать Boost с нестандартным набором флагов (из-за конфликта между потоками Boost и C ++ / CLI). Я добавляю обязательный флаг (/ clr) с помощью CXXFLAGS, но этот флаг конфликтует с флагом Boost по умолчанию / EHs (/ clr подразумевает / EHa, который несовместим с / EHs), поэтому его нужно подавить. Существует ли такой механизм, как CXXFLAGS, для подавления флага повышения по умолчанию, или я должен вручную редактировать все файлы спецификации компилятора?

1 Ответ

2 голосов
/ 01 июня 2010

Нет способа удалить эти опции. Что вам нужно сделать, это указать конкретный вариант сборки, который соответствует тому, что вы пытаетесь собрать. Если вы посмотрите на msvc.jam ( см. Здесь ), вы найдете раздел, в котором перечислены различные опции /EH*, которые он вставляет ( см. Здесь ). Как вы можете видеть, третий соответствует /EHa, который вы хотите для C ++ / CLI. Это переводится в здание с: bjam asynch-exceptions=on extern-c-nothrow=on <rest of the args>. exception-handling-on, очевидно, не нужен, так как по умолчанию вы получаете это, и в первую очередь не увидите опцию /EHs.

...