#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
заголовок для каждой версии компилятора.