#c #visual-studio-code #c11
#c #visual-studio-code #c11
Вопрос:
Я использую VS code в 64-разрядной системе Linux для разработки встроенных приложений на C для 32-разрядного ARM uC. Весь мой код будет скомпилирован на виртуальной машине другим набором инструментов, о котором VS Code не знает. Часть моего кода будет собрана изначально для модульных тестов. VS Code использует gcc 7.3.0 в качестве своего компилятора
У меня static_assertion появляется красная закорючка в VS code, потому что я утверждал, что элемент offsetof
структуры a является тем, что я ожидаю. Это статическое утверждение не срабатывает, когда я создаю код с помощью моей целевой цепочки инструментов, и, кроме того, это не тот файл, который я собираюсь тестировать. модульное тестирование. Есть ли какой-нибудь способ подавить эту проблему в VS code без полного отключения IntelliSense?
Я использую VS Code версии 1.33.1.
Редактировать: я мог бы определить статические утверждения на основе конфигурации. Но некоторые статические утверждения полезны в обоих случаях.
Другим вариантом было бы обернуть статические утверждения в макрос, который принимает параметр, чтобы скрыть его для той или иной конфигурации. Я бы хотел избежать украшения своего кода подобными вещами, чтобы помочь одному конкретному редактору. Моя команда использует различные редакторы, так что это было бы неприемлемо.
Я надеялся, что будет способ переопределить макрос для определенного файла в рабочей области, возможно, или подавить конкретный код ошибки компилятора для конкретного файла.
Комментарии:
1. Я не думаю, что в VS Code есть опция «подавить красную загогулину». Это ошибка компилятора gcc, предупреждение / ошибка VS Code Intellisense, что?
2. Поместите это в макрос и засуньте его куда-нибудь, где вы его не видите. С глаз долой, из сердца вон!
3. @MarkBenningfield Это было бы законной ошибкой компилятора GCC.
4. Является ли включение утверждений в
#ifdef __arm__
/#endif
couple нецелесообразным вариантом?5. @Bob__ не совсем. Я только что отредактировал свой вопрос.