В моем проекте я получаю много предупреждений вида «примечание: передача параметра для аргумента типа 'SomeClass' при включении C++17 изменена в соответствии с C++14 в GCC 10.1» .
Это произошло после того, как я обновился до использования компилятора, использующего стандарт C++17 вместо C++14 (gcc-arm-none-eabi из набора инструментов Arm GNU v11.2).Насколько я могу судить, эта заметка относится к изменениям, направленным на исправление ошибки, связанной с передачей определенных объектов шаблона C++. Пожалуйста, исправьте мое понимание, если я ошибаюсь, но я не думаю, что мне нужно обращать внимание на это примечание, потому что я компилирую все свои зависимости в проекте с помощью компилятора примера (gcc 11.2), поэтому не должно быть никаких различий в ABI. . Поэтому я хочу избавиться от этих заметок, которые появляются, когда они заполоняют терминал. Я нашел несколько возможных решений:
Установите флаг -Wno-psabi
Это работает и отключит все psABI. предупреждения. Однако могут быть случаи, когда я хочу получать уведомления об изменениях ABI, как описано здесь (Что именно делает опция GCC -Wpsabi? Каковы последствия ее подавления?). Однако в ответе на этот вопрос также отмечается, что мне никогда не придется беспокоиться об изменениях ABI, если все части моей программы созданы с помощью одного и того же компилятора. Я думаю, что в моем проекте так и есть, и хочу подтвердить — все библиотеки и само приложение скомпилированы с помощью gcc 11.2, за исключением libstd++ и newlib.
-fcompare-debug- во-вторых
Это волшебным образом убирает заметки, однако я не знаю, как и почему. На странице руководства указано: «
Когда этот параметр передается драйверу компилятора, он приводит к пропуску первой компиляции, что делает его полезным лишь для отладки самого компилятора». (https://gcc.gnu.org/onlinedocs/gcc/Deve ... tions.html). Похоже, это приводит к пропуску первого этапа компиляции и отображению только вывода второго, что означает, что предупреждения и другие выходные данные, которые я делаю, хотите увидеть, может не появиться? Поэтому я тоже опасаюсь использовать это.
Найдите способ заставить замолчать все примечания об изменении передачи параметра ABI между C++14 и C++17, но при этом оставить остальные заметки включены
Это то, что я действительно хочу сделать, но не уверен, есть ли способ.
Подробнее здесь: https://stackoverflow.com/questions/720 ... embedded-c
Как я могу подавить определенные примечания к изменениям ABI (встроенный C++)? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Предупреждение: файл блокировки не соответствует последним изменениям в pyproject.toml.
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-