884 / 340 / 78
Регистрация: 17.05.2015
Сообщений: 1,095
1

[gcg/mingw/clang] #pragma message формат вывода сообщений

02.07.2021, 19:30. Показов 4951. Ответов 0

Всем привет!

Иногда в лог компиляции нужно напечатать какое то сообщение.
И вот тут такая проблема: gcc/mingw/clang печатают слишком много лишнего.
Показывают трасу путей к исходникам, показывают как макросы раскрываются.
Это - полезная информация, когда нужно исправить ошибку.
Но очень мешает для обычного NOTICE сообщения.
Пользовательские сообщения попросту теряются в обилии лишней информации.

На stackoverflow нагуглила такой вариант:


C++
1
2
3
4
5
6
7
8
9
10
11
// -ftrack-macro-expansion=0 -fno-diagnostics-show-caret
 
#define dSTRINGIZE(...) #__VA_ARGS__
#define dSSTRINGIZE(x) dSTRINGIZE(x)
#define dMESSAGE(...)  _Pragma(dSTRINGIZE(message __VA_ARGS__))
 
#ifdef __cplusplus
    dMESSAGE("__cplusplus: " dSSTRINGIZE(__cplusplus)) 
#endif
 
int main(){}
Код
Warning(s):
183102421/source.cpp:9:5: note: #pragma message: __cplusplus: 201402L
Немного напрягает, что сообщение выводится со статусом "предупреждение", а не как обычное информационное сообщение.
Так же, хотелось бы, что бы компилятор не печатал лишнего.
Как убрать этот фрагмент слева ???
183102421/source.cpp:9:5: note: #pragma message:

Главная же проблема в том, что компилятор по-прежнему дико спаммит трассой файловых путей:

Код
[  8%] Building CXX object CMakeFiles/example.dir/cmake_pch.hxx.gch
In file included from C:/sandbox/example/include/example/example.hpp:10,
                 from C:/sandbox/example/sources/pch.hpp:8,
                 from C:/sandbox/_build/example/ver-0.0.2/mingw810-release-64-static/CMakeFiles/example.dir/cmake_pch.hxx:5,
                 from <command-line>:
C:/sandbox/example/include/example/private/cplusplus.hpp:12:5: note: #pragma message: __cplusplus: 201703L
Моё маленькое сообщение просто теряется в этом мессиве из файловых путей.

Для сравнения, как печатает компилятор Visual Studio:
Код
__cplusplus: 201703L
Как сделать так, что бы gcc/mingw/clang тоже не печатали лишнего?
Нужно, что бы напечаталось только и только само сообщение, и ничего более.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2021, 19:30
Ответы с готовыми решениями:

Как заставить Clang использовать MinGW по умолчанию?
Приветствую, форумчане. Я пишу на C++ в среде Windows 10 (x64). В качестве компилятора использую...

Пытаемся подружить clang 3.6 и Code::Blocks 13.12 + MinGW под Windows 7
Скачал clang. Установил в корень диска С. То есть, путь получился такой: До этого у меня уже был...

Формат письма Notes и Internet Mail Message
Уважаемые Гуру. Насколько я понял, Вы моя последняя надежда понять что происходит и где копать....

The message resource is present but the message is not found in the string/message table
Привет, всем! Я надеюсь, что вы мне поможете ... Извиняюсь если не в ту ветку написал, тут...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2021, 19:30

формат сохранения сообщений
вот например сообщения типа на форуме - есть и 10 знаков а есть и 1000 как правильно в базе...

Формат сообщений Syslog
Написал Syslog-сервис, проверяю на Kiwi Syslog Server, который поддерживает протокол RFC_3164. При...

Формат сообщений, отправляемых на адреса Интернета
Здравствуйте! Столкнулся с такой проблемой. В месте вызова стоит настройка: Формат для...

Какой формат сообщений имеет DHCP?
Какой формат сообщений имеет DHCP? В какую сторону нужно идти это искать? Также хочется узнать про...

Clang-format конфигурация стиля с использованием .clang-format
Добрый день! Никак не могу сконфигурировать файл .clang-format. Мне необходимо чтобы при...

Message"ERROR [HY000] [Microsoft][Драйвер ODBC Paradox] Внешняя таблица не имеет предполагаемый формат."
Вообщем, код: string _connectionString = &quot;Driver={Microsoft Paradox Driver (*.db...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.