Как я могу подавить определенные примечания к изменениям ABI (встроенный C++)?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу подавить определенные примечания к изменениям ABI (встроенный C++)?

Сообщение Anonymous »

В моем проекте я получаю много предупреждений вида «примечание: передача параметра для аргумента типа '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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»