此示例显示如何将生成的代码重新定位在另一个开发环境中。使用packngo创建包含生成的源代码,构建信息和cmake配置文件的zip文件。在目标开发环境中,使用Codebuild函数构建最终库或可执行文件。
打开模型。
RTWDEMO_CodeBuild.
请勿自动编译代码,生成makefile或包生成的代码和工件。
set_param('rtwdemo_codebuild'那'generatemakefile'那'离开');set_param('rtwdemo_codebuild'那'packagegeneratedcodeandartifacts'那'离开');
运行代码生成命令。
SLBUILD('rtwdemo_codebuild');
###启动串行模型参考代码生成build ###成功更新了:RTWDEMO_CodeBuild_ref ###开始构建过程的模型参考代码生成目标:RTWDEMO_CodeBuild ###成功完成代码生成:RTWDEMO_CodeBuild构建摘要代码生成目标:模型动作重建原因================================================================================ rtwdemo_codebuild_ref代码生成的rtwdemo_codebuild_ref.c不存在。顶级模型目标:模型动作重建原因===================================================================================== rtwdemo_codebuild代码生成的代码生成信息文件不存在。2个模型中的2个(0型号已达到约会)构建持续时间:0H 0M 29.238S
生成cmakelists.txt配置文件。
buildfolder = rtw.getbuilddir('rtwdemo_codebuild').BuildDirectory;CodeBuild(BuildFolder,'buildmethod'那'cmake');
运行packngo,分层包装文件。
Packngo(BuildFolder,'packtype'那'等级'那'筑巢', 错误的);
这是一个可选步骤。例如,如果您当前的开发环境是Linux计算机,则可以将ZIP文件复制到Windows计算机,然后在该计算机上执行后续步骤。
解压缩文件。
RTWDEMO_CodeBuild_files =解压缩('rtwdemo_codebuild.zip');
识别包含顶部组件的解压缩代码的文件夹。
RTWDEMO_CodeBuild_top_component_folder = fileparts(rtwdemo_codebuild_files {1});
识别默认的工具链(基于MEX -Setup选择的编译器)。
defaulttoolchain = coder.make.getdefaultToolchain;
构建可执行文件。
CodeBuild(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER,'buildmethod',defaulttoolchain);
检查是否生成了可执行文件。
dir(fullfile(rtwdemo_codebuild_top_component_folder,'..'那'rtwdemo_codebuild *')))
RTWDEMO_CODEBUILD.EXE RTWDEMO_CODEBUILD_GRT_RTW.
为当前平台选择模板makefile。
如果ispc.含有ert_vcx64.tmf的百分比,您必须安装Microsoft Visual C ++。如果%它未安装,指定ert_lcc64.tmf以使用LCC-Win64。templatemakefile ='ert_vcx64.tmf';别的templatemakefile ='ert_unix.tmf';结尾
构建可执行文件。
CodeBuild(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER,'buildmethod',templatemakefile);
在Windows上,创建指定导出的符号的定义文件。
如果ispc exportsfile = fullfile......(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER,'rtwdemo_codebuild.def');FID = FOPEN(ExportSfile,'W');fwrite(fid,['出口'新队]);fwrite(fid,['rtwdemo_codebuild_initialize'新队]);fwrite(fid,['rtwdemo_codebuild_step'新队]);fwrite(fid,['rtwdemo_codebuild_terminate'新队]);fclose(FID);结尾
构建共享库。
CodeBuild(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER,'buildvariant'那'shared_library');
CodeBuild(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER,'buildvariant'那'static_library');
使用cmakelists.txt文件,可以使用第三方工具CMake来为您选择的编译器环境生成Makefiles或工作区。如果在开发计算机上安装CMake,则通过在MATLAB命令窗口中运行这些命令来构建可执行文件:
CD(RTWDEMO_CODEBUILD_TOP_COMPONENT_FOLDER)
!cmake。
!cmake --build。