Как я могу программно заставить компилятор остановить процесс компиляции после того, как он обнаружил ошибку, созданную пользователем?

В моем коде я использую директиву препроцессора #error для создания ошибки. Тем не менее, он все еще продолжает процесс строительства.

Как я могу принудительно остановить процесс сборки программно после обнаружения моей ошибки?

Я использую Microsoft Visual Studio 2015, C++ v140, x86, для Windows 10.


person Michiel Pater    schedule 21.10.2015    source источник
comment
StopOnFirstBuildError?   -  person m.s.    schedule 21.10.2015
comment
Я специально ищу решение для этого programmatically.   -  person Michiel Pater    schedule 21.10.2015
comment
Что вы подразумеваете под программно? В коде? Через внешний скрипт?   -  person Kninnug    schedule 21.10.2015
comment
Что-то вроде #stop, чтобы остановить компиляцию после того, как определенное утверждение #if было истинным. Не использовать плагин для Visual Studio.   -  person Michiel Pater    schedule 21.10.2015
comment
Возможный дубликат GCC #pragma для остановки компиляции   -  person cadaniluk    schedule 21.10.2015
comment
@cad: OP знает о #error, а также не спрашивает о GCC.   -  person cremno    schedule 21.10.2015
comment
#error как раз для этого и предназначен. Не могли бы вы уточнить, что происходит с вашей сборкой?   -  person Jens Gustedt    schedule 21.10.2015
comment
#error завершает компиляцию текущей единицы перевода (исходного файла). Это не обязательно мешает IDE продолжать компилировать другие исходные файлы.   -  person Keith Thompson    schedule 21.10.2015


Ответы (1)


Из MSDN

Директива #error выдает указанное пользователем сообщение об ошибке во время компиляции и затем завершает компиляцию.

(Выделение добавлено)

Если компиляция продолжается после директивы #error, то вы делаете что-то странное или MSVC не работает.

person abelenky    schedule 21.10.2015