Класс: coder.make.BuildTool
Пакет: coder.make
Установите стандарт языка C/C + + и опции компилятора для выбранного инструмента сборки (компилятора)
h.setCompilerOptionMap(std,opts);
устанавливает стандарт языка C/C + + и соответствующие опции компилятора h
.setCompilerOptionMap(std
,opts
);определенного coder.make.BuildTool
объект в coder.make.ToolchainInfo.BuildTools
.
h
- Указатель на объектУказатель на объект для coder.make.BuildTool
объект, заданный как переменная.
Пример: tool
std
- Стандарт языка C/C + +Стандарт языка C/C + + для компилятора в BuildTool
определение, заданный как вектор символов.
Используйте одно из следующих для std
значение:
'C89/C90 (ANSI)'
'C99 (ISO)'
'C++03 (ISO)'
Типы данных: char
opts
- Опции компилятораОпции компилятора соответствуют конкретным BuildTool
имя и стандартный выбор языка C/C + +, заданный как символьный вектор. В таблице приведены примеры комбинаций значений для набора инструментальных средств Intel.
Имя инструмента сборки (компилятор) | std Значение | Opts значения |
---|---|---|
|
|
|
|
|
|
Для получения дополнительной информации о опциях, связанных с Intel, посетите https://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler
:
Типы данных: char
Следующая версия intel_tc.m
файл отличается от примера добавления пользовательских наборов инструментальных средств к MATLAB ® Coder™ Build Process. В этом примере показано, как определить C_STANDARD_OPTS
и CPP_STANDARD_OPTS
макросы, установите значения для макросов с setCompilerOptionMap
и применить макросы в строениях сборки.
Задайте макросы STANDARD_OPTS C/C + +
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Adding a build tool to ToolchainInfo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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'}); tc.addIntrinsicMacros({'C_STANDARD_OPTS', 'CPP_STANDARD_OPTS'}); % ------------------------------ % 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<|'); tool.setCompilerOptionMap('C99 (ISO)', '/Qstd=c99'); % ------------------------------ % 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<|'); tool.setCompilerOptionMap('C99 (ISO)', '/Qstd=c++0x'); % ------------------------------ % 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) $(C_STANDARD_OPTS) '; cppCompilerOpts = '$(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL) $(CPP_STANDARD_OPTS)'; 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)');
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.