Компилятор, не поддержанный для создания проекта от систем сборки

Проблема

Ваш компилятор не поддержан для автоматического создания проекта от команд сборки.

Причина

Для автоматического создания проекта от вашей системы сборки ваша настройка компилятора должна быть доступна Polyspace®. Polyspace обеспечивает конфигурационный файл компилятора только для определенных компиляторов.

Для получения информации о котором компиляторы поддерживаются, видят Требования для Создания Проекта от Систем сборки.

Решение

Чтобы включить автоматическое создание проекта для неподдерживаемого компилятора, можно записать собственный конфигурационный файл компилятора.

  1. Скопируйте один из существующих конфигурационных файлов от polyspaceroot\polyspace\configure\compiler_configuration\. Выберите настройку, которая наиболее тесно соответствует вашему компилятору с помощью отображения между именами компилятора и конфигурационными файлами.

  2. Сохраните файл как my_compiler.xml. my_compiler может быть именем, которое помогает вам идентифицировать файл.

    Чтобы отредактировать файл, сохраните его вне папки установки. После того, как вы закончили редактировать, необходимо скопировать файл назад в polyspaceroot\polyspace\configure\compiler_configuration\.

  3. Отредактируйте содержимое файла, чтобы представлять ваш компилятор. Замените записи между элементами XML с соответствующим содержимым.

  4. После сохранения отредактированного XML-файла к polyspaceroot\polyspace\configure\compiler_configuration\ создайте проект автоматически с помощью команды сборки.

    Если вы видите, что ошибки, например, ошибки компиляции, связываются с MathWorks® Technical Support. После трассировки вашей команды сборки программное обеспечение компилирует определенные файлы с помощью спецификаций компилятора, обнаруженных от конфигурационного файла и команды сборки. Ошибки компиляции могут указать на проблемы в конфигурационном файле.

    Совет

    Чтобы быстро видеть, работает ли ваш конфигурационный файл компилятора, запустите автоматическую настройку проекта на демонстрационной сборке, которая не занимает время, чтобы завершиться. После того, как вы настроили проект со своим конфигурационным файлом компилятора, можно использовать этот файл для больших сборок.

Элементы конфигурационного файла компилятора

В следующей таблице перечислены элементы XML в файле конфигурационного файла компилятора с описанием того, что представляет содержимое в элементе.

Элемент XMLОписание содержимогоПример содержимого для GNU® C Compiler
<compiler_names><name> ... </name><compiler_names>

Имя исполняемого файла компилятора. Этот исполняемый файл преобразовывает ваши файлы .c в объектные файлы. Можно добавить несколько бинарных имен, каждого в отдельном элементе <name>...</name>. Программное обеспечение проверяет на каждое из обеспеченных имен и использует имя компилятора, для которого это находит соответствие.

Вы не должны задавать двоичный файл компоновщика в элементах <name>...</name>.

Если имя, которое вы задаете, присутствует в существующем конфигурационном файле компилятора, ошибка происходит. Чтобы избежать ошибки, используйте дополнительную опцию -compiler-config my_compiler.xml при трассировке сборки так, чтобы программное обеспечение явным образом использовало конфигурационный файл компилятора.

  • gcc

  • gpp

<include_options><opt> ... </opt></include_options>

Опция, которую вы используете со своим компилятором, чтобы задать, включает папки.

Чтобы задать опции, где аргумент сразу следует опции, используйте атрибут isPrefix для opt и установите его на true.

-I
<system_include_options><opt> ... </opt></system_include_options>

Опция, которую вы используете со своим компилятором, чтобы задать системные заголовки.

Чтобы задать опции, где аргумент сразу следует опции, используйте атрибут isPrefix для opt и установите его на true.

-isystem
<preinclude_options><opt> ... </opt></preinclude_options>

Опция, которую вы используете со своим компилятором, чтобы обеспечить включение файла в скомпилированном объекте.

Чтобы задать опции, где аргумент сразу следует опции, используйте атрибут isPrefix для opt и установите его на true.

-include
<define_options><opt> ... </opt></define_options>

Опция, которую вы используете со своим компилятором, чтобы предопределить макрос.

Чтобы задать опции, где аргумент сразу следует опции, используйте атрибут isPrefix для opt и установите его на true.

-D
<undefine_options><opt> ... </opt></undefine_options>

Опция, которую вы используете со своим компилятором, чтобы отменить предыдущие определения макроса.

Чтобы задать опции, где аргумент сразу следует опции, используйте атрибут isPrefix для opt и установите его на true.

-U
<semantic_options><opt> ... </opt></semantic_options>

Опции, которые вы используете, чтобы изменить поведение компилятора. Эти опции задают настройки языка, которым должен соответствовать код.

Можно использовать атрибут isPrefix, чтобы задать несколько опций, которые имеют тот же префикс и атрибут numArgs, чтобы задать опции с несколькими аргументами. Например:

  • Вместо

    <opt>-m32</opt>
    <opt>-m64</opt>
    
    Можно записать <opt isPrefix="true">-m</opt>.

  • Вместо

    <opt>-std=c90</opt>
    <opt>-std=c99</opt>
    
    Можно записать <opt numArgs="1">-std</opt>. Если ваш make-файл использует -std c90 вместо -std=c90, это обозначение также поддерживает то использование.

  • -ansi

  • -std=C90

  • -std=c++11

  • -funsigned-char

<dialect> ... </dialect>

Компилятор Polyspace, который соответствует или тесно совпадает с вашим компилятором. Содержимое этого элемента непосредственно переводит в опцию Compiler в вашем проекте Polyspace или файле опций.

Для полного списка доступных компиляторов смотрите Compiler (-compiler).

gnu4.7
<compile_options_list><opt> ... </opt></compile_options_list>Опции, которые вы используете, чтобы скомпилировать исходные файлы без соединения.-c
<preprocess_options_list><opt> ... </opt></preprocess_options_list>

Опции, которые задают, как ваш компилятор генерирует предварительно обработанный файл.

Можно использовать макро-$(OUTPUT_FILE), если компилятор не позволяет отправлять предварительно обработанный файл в стандартный вывод. Вместо этого это задает предварительно обработанный файл внутренне.

-E

Для примера макроса $(OUTPUT_FILE) смотрите существующий конфигурационный файл компилятора cl2000.xml.

<preprocessed_output_file> ... </preprocessed_output_file>

Имя файла, где предварительно обработанный вывод хранится.

Можно использовать следующие макросы, когда имя предварительно обработанного выходного файла адаптируется от исходного файла:

  • $(SOURCE_FILE): имя Исходного файла

  • $(SOURCE_FILE_EXT): расширение Исходного файла

  • $(SOURCE_FILE_NO_EXT): имя Исходного файла без расширения

Например, используйте $(SOURCE_FILE_NO_EXT).pre, когда имя файла препроцессора будет иметь то же имя как исходный файл, но с дополнительным .pre.

Для примера этого элемента смотрите существующий конфигурационный файл компилятора xc8.xml.

<src_extensions><ext> ... </ext></src_extensions>Расширения файла для исходных файлов.
  • c

  • cpp

  • c++

<obj_extensions><ext> ... </ext></obj_extensions>Расширения файла для объектных файлов.o
<precompiled_header_extensions> ... </precompiled_header_extensions>Расширения файла для предварительно скомпилированных заголовков (при наличии).gch
<polyspace_extra_options_list>
   <opt> ... </opt>
   <opt> ... </opt>
</polyspace_extra_options_list>

Дополнительные опции, которые используются для последующего анализа.

Например, чтобы избежать ошибок компиляции в последующем анализе из-за non-ANSI® дополнительных ключевых слов, введите -D keyword=value, например:

<polyspace_extra_options_list> 
    <opt>-D MACRO1</opt> 
    <opt>-D MACRO2=VALUE</opt> 
</polyspace_extra_options_list> 

Для получения дополнительной информации смотрите Preprocessor definitions (-D).

 

Отображение между существующими конфигурационными файлами и именами компилятора

Выберите конфигурационный файл в polyspaceroot\polyspace\configure\compiler_configuration\, который наиболее тесно напоминает настройку вашего компилятора. Используйте следующую таблицу, чтобы сопоставить компиляторы с их конфигурационными файлами.

Имя компилятораПоставщикXML-файл
ARM® ARM Keilarmcc.xml
armclang.xml
Визуальный C ++® Microsoft® cl.xml
ЛязгНе применяетсяclang.xml
CodeWarrior® NXPcw_ppc.xml
cw_s12z.xml
cx6808Космическийcx6808.xml
Diab Ветер River® diab.xml
gccНе применяетсяgcc.xml
Green Hills® Зеленое программное обеспечение выступовghs_arm.xml
ghs_arm64.xml
ghs_i386.xml
ghs_ppc.xml
ghs_rh850.xml
ghs_tricore.xml
IAR встроенные инструментальные средстваIARiar.xml
iar-arm.xml
iar-avr.xml
iar-msp430.xml
iar-rh850.xml
iar-rl78.xml
Renesas® Renesas renesas-rh850.xml
renesas-rl78.xml
renesas-rx.xml
TASKING® Altium® tasking.xml
tasking-166.xml
tasking-850.xml
tasking-arm.xml
Крошечный CНе применяетсяtcc.xml
TM320 и его производные Техас Instruments™ ti_arm.xml
ti_c28x.xml
ti_c6000.xml
ti_msp430.xml
xc8 (PIC)Микрочипxc8.xml