Этот пример показывает, как указать и использовать набор инструментальных средств, чтобы создать исполняемый файл. Этот пример использует компилятор Intel®. Однако концепции и интерфейс программирования применяются к другим наборам инструментальных средств. Если вы указываете набор инструментальных средств, можно сконфигурировать модель, таким образом, что генератор кода использует тот набор инструментальных средств, чтобы создать исполняемый файл для модели.
Набор инструментальных средств является набором инструментов, требуемых скомпилировать, соединить, загрузить, и код выполнения по заданной платформе. Набор инструментальных средств состоит из нескольких инструментов, таких как компилятор, компоновщик и archiver. Можно сконфигурировать инструменты в наборе инструментальных средств с несколькими опциями и спецификациями инструмента группы в типы настроек.
Следующий код создает папку в вашей текущей рабочей папке (pwd). Новая папка содержит файлы для этого примера. Если вы не хотите влиять на текущую папку, или не можете сгенерировать файлы в этой папке, изменить свою рабочую папку прежде, чем вызвать команду.
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','toolchain_demo'),'toolchain_demo','f') cd toolchain_demo
Откройте модель rtwdemo_counter
. По умолчанию эта модель сконфигурирована, чтобы использовать Типичную Цель В реальном времени (GRT) настройка и подход набора инструментальных средств для создания исполняемого файла. Возможность, продемонстрированная в этом примере, доступна для моделей, сконфигурированных, чтобы использовать подход Набора инструментальных средств.
model = 'rtwdemo_counter';
open_system(model)
В окне модели нажмите Simulation> Model Configuration Parameters, чтобы открыть диалоговое окно Configuration Parameters. Выберите Code Generation. Раздел настроек Toolchain содержит параметры для конфигурирования набора инструментальных средств. От Набора инструментальных средств выпадающий список выберите набор инструментальных средств, установленный в вашей системе разработки для создания исполняемого файла из кода, сгенерированного из вашей модели.
По умолчанию Более быстрая конфигурация сборки Выполнений выбрана. Кликните по настройкам Show, чтобы видеть флаги набора инструментальных средств, заданные для создания сгенерированного кода. Выберите конфигурацию сборки на основе своей текущей цели разработки приложений.
Закройте диалоговое окно Configuration Parameters.
Этот пример показывает, как можно указать пользовательский набор инструментальных средств и добавить его как выбираемую опцию Набора инструментальных средств.
Первый шаг к регистрации пользовательского набора инструментальных средств должен создать объект ToolchainInfo
, который содержит информацию о наборе инструментальных средств. Методы доступны, чтобы установить спецификации набора инструментальных средств. Можно совместно использовать объект ToolchainInfo
через установки.
Откройте файл определения набора инструментальных средств для компилятора Intel. Этот файл создает объект ToolchainInfo
, который содержит информацию о наборе инструментальных средств Intel на 64-битной платформе Windows®.
edit intel_tc type intel_tc
function tc = intel_tc %INTEL_TC Creates an Intel v14 ToolchainInfo object. % This file can be used as a template to define other toolchains on Windows. % Copyright 2012-2016 The MathWorks, Inc. tc = coder.make.ToolchainInfo('BuildArtifact', 'nmake makefile'); tc.Name = 'Intel v14 | nmake makefile (64-bit Windows)'; tc.Platform = 'win64'; tc.SupportedVersion = '14'; tc.addAttribute('TransformPathsWithSpaces'); tc.addAttribute('RequiresCommandFile'); tc.addAttribute('RequiresBatchFile'); % ------------------------------ % Setup % ------------------------------ % Below we are using %ICPP_COMPILER14% as root folder where Intel Compiler is installed. % You can either set an environment variable or give full path to the % compilervars.bat file tc.ShellSetup{1} = 'call %ICPP_COMPILER14%\bin\compilervars.bat intel64'; % ------------------------------ % Macros % ------------------------------ tc.addMacro('MW_EXTERNLIB_DIR', ['$(MATLAB_ROOT)\extern\lib\' tc.Platform '\microsoft']); tc.addMacro('MW_LIB_DIR', ['$(MATLAB_ROOT)\lib\' tc.Platform]); tc.addMacro('CFLAGS_ADDITIONAL', '-D_CRT_SECURE_NO_WARNINGS'); tc.addMacro('CPPFLAGS_ADDITIONAL', '-EHs -D_CRT_SECURE_NO_WARNINGS'); tc.addMacro('LIBS_TOOLCHAIN', '$(conlibs)'); tc.addMacro('CVARSFLAG', ''); tc.addIntrinsicMacros({'ldebug', 'conflags', 'cflags'}); % ------------------------------ % C Compiler % ------------------------------ tool = tc.getBuildTool('C Compiler'); tool.setName( 'Intel C Compiler'); tool.setCommand( 'icl'); tool.setPath( ''); tool.setDirective( 'IncludeSearchPath', '-I'); tool.setDirective( 'PreprocessorDefine', '-D'); tool.setDirective( 'OutputFlag', '-Fo'); tool.setDirective( 'Debug', '-Zi'); tool.setFileExtension( 'Source', '.c'); tool.setFileExtension( 'Header', '.h'); tool.setFileExtension( 'Object', '.obj'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % C++ Compiler % ------------------------------ tool = tc.getBuildTool('C++ Compiler'); tool.setName( 'Intel C++ Compiler'); tool.setCommand( 'icl'); tool.setPath( ''); tool.setDirective( 'IncludeSearchPath', '-I'); tool.setDirective( 'PreprocessorDefine', '-D'); tool.setDirective( 'OutputFlag', '-Fo'); tool.setDirective( 'Debug', '-Zi'); tool.setFileExtension( 'Source', '.cpp'); tool.setFileExtension( 'Header', '.hpp'); tool.setFileExtension( 'Object', '.obj'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Linker % ------------------------------ tool = tc.getBuildTool('Linker'); tool.setName( 'Intel C/C++ Linker'); tool.setCommand( 'xilink'); tool.setPath( ''); tool.setDirective( 'Library', '-L'); tool.setDirective( 'LibrarySearchPath', '-I'); tool.setDirective( 'OutputFlag', '-out:'); tool.setDirective( 'Debug', ''); tool.setFileExtension( 'Executable', '.exe'); tool.setFileExtension( 'Shared Library', '.dll'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % C++ Linker % ------------------------------ tool = tc.getBuildTool('C++ Linker'); tool.setName( 'Intel C/C++ Linker'); tool.setCommand( 'xilink'); tool.setPath( ''); tool.setDirective( 'Library', '-L'); tool.setDirective( 'LibrarySearchPath', '-I'); tool.setDirective( 'OutputFlag', '-out:'); tool.setDirective( 'Debug', ''); tool.setFileExtension( 'Executable', '.exe'); tool.setFileExtension( 'Shared Library', '.dll'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Archiver % ------------------------------ tool = tc.getBuildTool('Archiver'); tool.setName( 'Intel C/C++ Archiver'); tool.setCommand( 'xilib'); tool.setPath( ''); tool.setDirective( 'OutputFlag', '-out:'); tool.setFileExtension( 'Static Library', '.lib'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Builder % ------------------------------ tc.setBuilderApplication(tc.Platform); % -------------------------------------------- % BUILD CONFIGURATIONS % -------------------------------------------- optimsOffOpts = {'/c /Od'}; optimsOnOpts = {'/c /O2'}; cCompilerOpts = '$(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL)'; cppCompilerOpts = '$(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL)'; linkerOpts = {'$(ldebug) $(conflags) $(LIBS_TOOLCHAIN)'}; sharedLinkerOpts = horzcat(linkerOpts, '-dll -def:$(DEF_FILE)'); archiverOpts = {'/nologo'}; % Get the debug flag per build tool debugFlag.CCompiler = '$(CDEBUG)'; debugFlag.CppCompiler = '$(CPPDEBUG)'; debugFlag.Linker = '$(LDDEBUG)'; debugFlag.CppLinker = '$(CPPLDDEBUG)'; debugFlag.Archiver = '$(ARDEBUG)'; % Set the toolchain flags for 'Faster Builds' build configuration cfg = tc.getBuildConfiguration('Faster Builds'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts)); cfg.setOption( 'Linker', linkerOpts); cfg.setOption( 'C++ Linker', linkerOpts); cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); cfg.setOption( 'Archiver', archiverOpts); % Set the toolchain flags for 'Faster Runs' build configuration cfg = tc.getBuildConfiguration('Faster Runs'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOnOpts)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOnOpts)); cfg.setOption( 'Linker', linkerOpts); cfg.setOption( 'C++ Linker', linkerOpts); cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); cfg.setOption( 'Archiver', archiverOpts); % Set the toolchain flags for 'Debug' build configuration cfg = tc.getBuildConfiguration('Debug'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts, debugFlag.CCompiler)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts, debugFlag.CppCompiler)); cfg.setOption( 'Linker', horzcat(linkerOpts, debugFlag.Linker)); cfg.setOption( 'C++ Linker', horzcat(linkerOpts, debugFlag.CppLinker)); cfg.setOption( 'Shared Library Linker', horzcat(sharedLinkerOpts, debugFlag.Linker)); cfg.setOption( 'Archiver', horzcat(archiverOpts, debugFlag.Archiver)); tc.setBuildConfigurationOption('all', 'Download', ''); tc.setBuildConfigurationOption('all', 'Execute', ''); tc.setBuildConfigurationOption('all', 'Make Tool', '-f $(MAKEFILE)');
Можно отобразить ошибки и предупреждения в панели сообщений диагностики от сборок, сгенерированных пользовательскими компиляторами. Для получения дополнительной информации смотрите Диагностическую Панель сообщения (Simulink).
Запустите файл определения набора инструментальных средств, чтобы сгенерировать объект ToolchainInfo
.
tc = intel_tc;
Сохраните объект ToolchainInfo
tc
в файл MAT.
save intel_tc tc
После того, как вы создаете объект ToolchainInfo
для нового набора инструментальных средств, указываете его. Укажите набор инструментальных средств в RTW.TargetRegistry
. Чтобы указать набор инструментальных средств, запишите файл rtwTargetInfo.m
. Затем добавьте что файл в путь MATLAB так системные нагрузки это автоматически.
type rtwTargetInfo
function rtwTargetInfo(tr) %RTWTARGETINFO Registration file for custom toolchains. % Copyright 2012-2016 The MathWorks, Inc. tr.registerTargetInfo(@loc_createToolchain); end % ------------------------------------------------------------------------- % Create the ToolchainInfoRegistry entries % ------------------------------------------------------------------------- function config = loc_createToolchain config(1) = coder.make.ToolchainInfoRegistry; config(1).Name = 'Intel v14 | nmake makefile (64-bit Windows)'; config(1).FileName = fullfile(fileparts(mfilename('fullpath')), 'intel_tc.mat'); config(1).TargetHWDeviceType = {'*'}; config(1).Platform = {computer('arch')}; end
Сбросьте TargetRegistry
, чтобы использовать новый файл rtwTargetInfo.m
.
RTW.TargetRegistry.getInstance('reset');
Вновь откройте диалоговое окно Configuration Parameters. Нажмите Toolchain. Необходимо видеть новый набор инструментальных средств в списке. Выберите набор инструментальных средств Intel v14
.
Программно, можно выполнить ту же задачу со следующими командами:
cs = getActiveConfigSet(model);
set_param(cs, 'Toolchain', tc.Name)
Проверьте свой выбор.
toolchain = get_param(cs, 'Toolchain')
toolchain = 'Intel v14 | nmake makefile (64-bit Windows)'
Можно теперь создать модель с новым пользовательским набором инструментальных средств.
Примечание: Если вам не установили набор инструментальных средств Intel, можно использовать следующую команду, чтобы сгенерировать код и make-файл только.
set_param(cs, 'GenCodeOnly', 'on')
Создайте модель, чтобы сгенерировать код и make-файл, который использует новый набор инструментальных средств.
rtwbuild(model)
### Starting build procedure for model: rtwdemo_counter ### Successful completion of code generation for model: rtwdemo_counter
Получите информацию о каталоге сборки.
dirInfo = RTW.getBuildDir(model);
Исследуйте сгенерированный make-файл.
type(fullfile(dirInfo.BuildDirectory, [model '.mk']))
########################################################################### ## Makefile generated for Simulink model 'rtwdemo_counter'. ## ## Makefile : rtwdemo_counter.mk ## Generated on : Fri Jul 20 12:32:35 2018 ## MATLAB Coder version: 4.1 (R2018b) ## ## Build Info: ## ## Final product: $(RELATIVE_PATH_TO_ANCHOR)\rtwdemo_counter.exe ## Product type : executable ## Build type : Top-Level Standalone Executable ## ########################################################################### ########################################################################### ## MACROS ########################################################################### # Macro Descriptions: # PRODUCT_NAME Name of the system to build # MAKEFILE Name of this makefile # COMPUTER Computer type. See the MATLAB "computer" command. # COMPILER_COMMAND_FILE Compiler command listing model reference header paths # CMD_FILE Command file PRODUCT_NAME = rtwdemo_counter MAKEFILE = rtwdemo_counter.mk COMPUTER = PCWIN64 MATLAB_ROOT = X:\13\BZGXTF~L.SB\matlab MATLAB_BIN = X:\13\BZGXTF~L.SB\matlab\bin MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64 MASTER_ANCHOR_DIR = START_DIR = H:\Documents\MATLAB\examples\simulinkcoder-ex70798435\toolchain_demo ARCH = win64 SOLVER = SOLVER_OBJ = CLASSIC_INTERFACE = 0 TGT_FCN_LIB = None MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0 RELATIVE_PATH_TO_ANCHOR = .. COMPILER_COMMAND_FILE = rtwdemo_counter_comp.rsp CMD_FILE = rtwdemo_counter.rsp C_STANDARD_OPTS = CPP_STANDARD_OPTS = ########################################################################### ## TOOLCHAIN SPECIFICATIONS ########################################################################### # Toolchain Name: Intel v14 | nmake makefile (64-bit Windows) # Supported Version(s): 14 # ToolchainInfo Version: R2018b # Specification Revision: 1.0 # #------------------------------------------- # Macros assumed to be defined elsewhere #------------------------------------------- # ldebug # conflags # cflags #----------- # MACROS #----------- MW_EXTERNLIB_DIR = $(MATLAB_ROOT)\extern\lib\win64\microsoft MW_LIB_DIR = $(MATLAB_ROOT)\lib\win64 CFLAGS_ADDITIONAL = -D_CRT_SECURE_NO_WARNINGS CPPFLAGS_ADDITIONAL = -EHs -D_CRT_SECURE_NO_WARNINGS LIBS_TOOLCHAIN = $(conlibs) TOOLCHAIN_SRCS = TOOLCHAIN_INCS = TOOLCHAIN_LIBS = #------------------------ # BUILD TOOL COMMANDS #------------------------ # C Compiler: Intel C Compiler CC = icl # Linker: Intel C/C++ Linker LD = xilink # C++ Compiler: Intel C++ Compiler CPP = icl # C++ Linker: Intel C/C++ Linker CPP_LD = xilink # Archiver: Intel C/C++ Archiver AR = xilib # MEX Tool: MEX Tool MEX_PATH = $(MATLAB_ARCH_BIN) MEX = "$(MEX_PATH)\mex" # Download: Download DOWNLOAD = # Execute: Execute EXECUTE = $(PRODUCT) # Builder: NMAKE Utility MAKE = nmake #------------------------- # Directives/Utilities #------------------------- CDEBUG = -Zi C_OUTPUT_FLAG = -Fo LDDEBUG = OUTPUT_FLAG = -out: CPPDEBUG = -Zi CPP_OUTPUT_FLAG = -Fo CPPLDDEBUG = OUTPUT_FLAG = -out: ARDEBUG = STATICLIB_OUTPUT_FLAG = -out: MEX_DEBUG = -g RM = @del ECHO = @echo MV = @ren RUN = @cmd /C #---------------------------------------- # "Faster Builds" Build Configuration #---------------------------------------- ARFLAGS = /nologo CFLAGS = $(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL) \ /c /Od CPPFLAGS = $(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL) \ /c /Od CPP_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) CPP_SHAREDLIB_LDFLAGS = DOWNLOAD_FLAGS = EXECUTE_FLAGS = LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) MEX_CPPFLAGS = MEX_CPPLDFLAGS = MEX_CFLAGS = MEX_LDFLAGS = MAKE_FLAGS = -f $(MAKEFILE) SHAREDLIB_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \ -dll -def:$(DEF_FILE) #-------------------- # File extensions #-------------------- H_EXT = .h OBJ_EXT = .obj C_EXT = .c EXE_EXT = .exe SHAREDLIB_EXT = .dll HPP_EXT = .hpp OBJ_EXT = .obj CPP_EXT = .cpp EXE_EXT = .exe SHAREDLIB_EXT = .dll STATICLIB_EXT = .lib MEX_EXT = .mexw64 MAKE_EXT = .mk ########################################################################### ## OUTPUT INFO ########################################################################### PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\rtwdemo_counter.exe PRODUCT_TYPE = "executable" BUILD_TYPE = "Top-Level Standalone Executable" ########################################################################### ## INCLUDE PATHS ########################################################################### INCLUDES_BUILDINFO = $(START_DIR);$(START_DIR)\rtwdemo_counter_ert_rtw;$(MATLAB_ROOT)\toolbox\rtw\rtwdemos;$(MATLAB_ROOT)\extern\include;$(MATLAB_ROOT)\simulink\include;$(MATLAB_ROOT)\rtw\c\src;$(MATLAB_ROOT)\rtw\c\src\ext_mode\common;$(MATLAB_ROOT)\rtw\c\ert;$(START_DIR)\slprj\ert\_sharedutils INCLUDES = $(INCLUDES_BUILDINFO) ########################################################################### ## DEFINES ########################################################################### DEFINES_BUILD_ARGS = -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DTERMFCN=0 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_INSTANCE_CODE=0 -DINTEGER_CODE=0 -DMT=0 DEFINES_IMPLIED = -DTID01EQ=0 DEFINES_STANDARD = -DMODEL=rtwdemo_counter -DNUMST=1 -DNCSTATES=0 -DHAVESTDIO -DMODEL_HAS_DYNAMICALLY_LOADED_SFCNS=0 DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_IMPLIED) $(DEFINES_STANDARD) ########################################################################### ## SOURCE FILES ########################################################################### SRCS = $(START_DIR)\rtwdemo_counter_ert_rtw\rtwdemo_counter.c MAIN_SRC = $(START_DIR)\rtwdemo_counter_ert_rtw\ert_main.c ALL_SRCS = $(SRCS) $(MAIN_SRC) ########################################################################### ## OBJECTS ########################################################################### OBJS = rtwdemo_counter.obj MAIN_OBJ = ert_main.obj ALL_OBJS = $(OBJS) $(MAIN_OBJ) ########################################################################### ## PREBUILT OBJECT FILES ########################################################################### PREBUILT_OBJS = ########################################################################### ## LIBRARIES ########################################################################### LIBS = ########################################################################### ## SYSTEM LIBRARIES ########################################################################### SYSTEM_LIBS = ########################################################################### ## ADDITIONAL TOOLCHAIN FLAGS ########################################################################### #--------------- # C Compiler #--------------- CFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE) CFLAGS = $(CFLAGS) $(CFLAGS_BASIC) #----------------- # C++ Compiler #----------------- CPPFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE) CPPFLAGS = $(CPPFLAGS) $(CPPFLAGS_BASIC) ########################################################################### ## INLINED COMMANDS ########################################################################### ########################################################################### ## PHONY TARGETS ########################################################################### .PHONY : all build buildobj clean info prebuild download execute set_environment_variables all : build @cmd /C "@echo ### Successfully generated all binary outputs." build : set_environment_variables prebuild $(PRODUCT) buildobj : set_environment_variables prebuild $(OBJS) $(PREBUILT_OBJS) @cmd /C "@echo ### Successfully generated all binary outputs." prebuild : download : build execute : download @cmd /C "@echo ### Invoking postbuild tool "Execute" ..." $(EXECUTE) $(EXECUTE_FLAGS) @cmd /C "@echo ### Done invoking postbuild tool." set_environment_variables : @set INCLUDE=$(INCLUDES);$(INCLUDE) @set LIB=$(LIB) ########################################################################### ## FINAL TARGET ########################################################################### #------------------------------------------- # Create a standalone executable #------------------------------------------- $(PRODUCT) : $(OBJS) $(PREBUILT_OBJS) $(MAIN_OBJ) @cmd /C "@echo ### Creating standalone executable "$(PRODUCT)" ..." $(LD) $(LDFLAGS) -out:$(PRODUCT) @$(CMD_FILE) $(SYSTEM_LIBS) $(TOOLCHAIN_LIBS) @cmd /C "@echo ### Created: $(PRODUCT)" ########################################################################### ## INTERMEDIATE TARGETS ########################################################################### #--------------------- # SOURCE-TO-OBJECT #--------------------- .c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" .cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(RELATIVE_PATH_TO_ANCHOR)}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(START_DIR)}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(START_DIR)}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(START_DIR)\rtwdemo_counter_ert_rtw}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(START_DIR)\rtwdemo_counter_ert_rtw}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\rtw\c\src}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\rtw\c\src}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\simulink\src}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\simulink\src}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" ########################################################################### ## DEPENDENCIES ########################################################################### $(ALL_OBJS) : rtw_proj.tmw $(MAKEFILE) ########################################################################### ## MISCELLANEOUS TARGETS ########################################################################### info : @cmd /C "@echo ### PRODUCT = $(PRODUCT)" @cmd /C "@echo ### PRODUCT_TYPE = $(PRODUCT_TYPE)" @cmd /C "@echo ### BUILD_TYPE = $(BUILD_TYPE)" @cmd /C "@echo ### INCLUDES = $(INCLUDES)" @cmd /C "@echo ### DEFINES = $(DEFINES)" @cmd /C "@echo ### ALL_SRCS = $(ALL_SRCS)" @cmd /C "@echo ### ALL_OBJS = $(ALL_OBJS)" @cmd /C "@echo ### LIBS = $(LIBS)" @cmd /C "@echo ### MODELREF_LIBS = $(MODELREF_LIBS)" @cmd /C "@echo ### SYSTEM_LIBS = $(SYSTEM_LIBS)" @cmd /C "@echo ### TOOLCHAIN_LIBS = $(TOOLCHAIN_LIBS)" @cmd /C "@echo ### CFLAGS = $(CFLAGS)" @cmd /C "@echo ### LDFLAGS = $(LDFLAGS)" @cmd /C "@echo ### SHAREDLIB_LDFLAGS = $(SHAREDLIB_LDFLAGS)" @cmd /C "@echo ### CPPFLAGS = $(CPPFLAGS)" @cmd /C "@echo ### CPP_LDFLAGS = $(CPP_LDFLAGS)" @cmd /C "@echo ### CPP_SHAREDLIB_LDFLAGS = $(CPP_SHAREDLIB_LDFLAGS)" @cmd /C "@echo ### ARFLAGS = $(ARFLAGS)" @cmd /C "@echo ### MEX_CFLAGS = $(MEX_CFLAGS)" @cmd /C "@echo ### MEX_CPPFLAGS = $(MEX_CPPFLAGS)" @cmd /C "@echo ### MEX_LDFLAGS = $(MEX_LDFLAGS)" @cmd /C "@echo ### MEX_CPPLDFLAGS = $(MEX_CPPLDFLAGS)" @cmd /C "@echo ### DOWNLOAD_FLAGS = $(DOWNLOAD_FLAGS)" @cmd /C "@echo ### EXECUTE_FLAGS = $(EXECUTE_FLAGS)" @cmd /C "@echo ### MAKE_FLAGS = $(MAKE_FLAGS)" clean : $(ECHO) "### Deleting all derived files..." @if exist $(PRODUCT) $(RM) $(PRODUCT) $(RM) $(ALL_OBJS) $(ECHO) "### Deleted all derived files."
Если процесс сборки закончен, и вам установили компиляторы Intel, можно запустить сгенерированный исполняемый файл.
if ispc system([model '.exe']) else system(model) end
Можно опционально удалить папку, которую вы создали ранее.
cd ..
Сбросьте TargetRegistry
, чтобы удалить набор инструментальных средств, который вы указали выше.
RTW.TargetRegistry.getInstance('reset');
Закройте модель.
close_system(model, 0)
Очистите переменные, введенные в рабочей области.
clear INC K LIMIT RESET model tc cs toolchain