Возможно ли в любом доступном компиляторе C/C++ печатать сообщения из исходного файла при компиляции исходного файла (это нормально, если он не печатает его при связывании). Мне нужно будет вставить сообщение в исходный файл.
(Чтобы сделать его более ясным, использование printf будет печатать сообщение во время выполнения. Я не хочу печатать сообщение во время выполнения.)
Я знаю, что сообщение можно поместить в Makefile (это то, что я делал до сих пор). Однако мне бы очень хотелось, чтобы сообщение могло быть помещено в исходный файл.
Некоторые компиляторы имеют #pragma message
, которое печатает пользовательское сообщение в отчете диагностики компилятора.
Стандарт C99 определяет директиву препроцессора #error
которая может использоваться для этой задачи:
§6.10.5:
Директива предварительной обработки формы
#error
pp-tokens opt new-lineзаставляет реализацию генерировать диагностическое сообщение, которое включает определенную последовательность токенов предварительной обработки.
#warning
, но имейте в виду, что сообщение будет отображаться как предупреждение.