В моем проекте я получаю много предупреждений вида «примечание: передача параметра для аргумента типа '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++
Программы на C++. Форум разработчиков
1736498258
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. . Поэтому я хочу избавиться от этих заметок, которые появляются, когда они заполоняют терминал. Я нашел несколько возможных решений:
[b]Установите флаг -Wno-psabi[/b]
Это работает и отключит все psABI. предупреждения. Однако могут быть случаи, когда я хочу получать уведомления об изменениях ABI, как описано здесь (Что именно делает опция GCC -Wpsabi? Каковы последствия ее подавления?). Однако в ответе на этот вопрос также отмечается, что мне никогда не придется беспокоиться об изменениях ABI, если все части моей программы созданы с помощью одного и того же компилятора. Я думаю, что в моем проекте так и есть, и хочу подтвердить — все библиотеки и само приложение скомпилированы с помощью gcc 11.2, за исключением libstd++ и newlib.
[b]-fcompare-debug- во-вторых[/b]
Это волшебным образом убирает заметки, однако я не знаю, как и почему. На странице руководства указано: «
Когда этот параметр передается драйверу компилятора, он приводит к пропуску первой компиляции, что делает его полезным лишь для отладки самого компилятора». (https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html). Похоже, это приводит к пропуску первого этапа компиляции и отображению только вывода второго, что означает, что предупреждения и другие выходные данные, которые я делаю, хотите увидеть, может не появиться? Поэтому я тоже опасаюсь использовать это.
[b]Найдите способ заставить замолчать все примечания об изменении передачи параметра ABI между C++14 и C++17, но при этом оставить остальные заметки включены[/b]
Это то, что я действительно хочу сделать, но не уверен, есть ли способ.
Подробнее здесь: [url]https://stackoverflow.com/questions/72052105/how-can-i-suppress-certain-abi-change-notes-embedded-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия