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

Проблема

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

Причина

Для автоматического создания проекта от вашей системы сборки ваша настройка компилятора должна быть доступна для 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> элементы.

Если имя, которое вы задаете, присутствует в существующем конфигурационном файле компилятора, ошибка происходит. Чтобы избежать ошибки, используйте дополнительную опцию - 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

<compiler> ... </compiler>

Параметр компилятора 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