Как решить проблему, связанную с заголовочным файлом библиотеки ARM встроенного рабочего стола IAR, для успешного запуска PC-Lint в IAR?

#iar #pc-lint

Вопрос:

Когда я запускаю PC-Lint в своем коде на рабочем столе IAR, он конфликтует с фрагментом кода, присутствующим в заголовочном файле библиотеки yvals.h , который я включаю ниже, а затем PC-Lint перестает работать.

 /* IAR compiler version check */
#if (__IAR_SYSTEMS_ICC__ < 9) || (__IAR_SYSTEMS_ICC__ > 9)
  #error "DLib compiled with wrong (version of IAR) compiler"
#endif
 

Версия компилятора IAR, которую я использую, такова co-iar.lnt . Я выбрал эту версию компилятора из конфигурационного файла PC-Lint.

Ответ №1:

Компилятор IAR внутренне определяет различные символы препроцессора (например __IAR_SYTEMS_ICC ), которые не известны PC-Lint в вашей настройке. К счастью, вы можете поручить компилятору IAR сгенерировать файл со всеми этими символами, используя опцию командной строки --predef_macros iar_symbols.h . Вы можете добавить эту опцию в любой проект встроенного рабочего стола в разделе Project > Options > Compiler > Extra Options . Как только вы скомпилируете свой проект, файл iar_symbols.h будет сгенерирован. После этого вы можете снова удалить эту --predef_macros опцию из своего проекта.

Теперь вам нужно дать команду PC-Lint прочитать сгенерированный файл, добавив эту опцию -header(iar_symbols.h) в командную строку PC-Lint. Это должно решить вашу проблему.

Обратите внимание, что список предопределенных символов зависит от используемой версии компилятора. Если вы используете разные версии компилятора IAR для разных проектов, вам следует создать один iar_symbols.h заголовок для каждой версии компилятора.