在另一个开发环境中编译代码
这个示例展示了如何重新定位生成的代码并在另一个开发环境中编译它。使用packNGo创建一个zip文件,其中包含生成的源代码和构建信息。在您的目标开发环境中,使用codebuild函数构建最终的库或可执行文件。
配置模型
打开模型。
rtwdemo_codebuild
不要自动编译代码或生成makefile。
set_param (“rtwdemo_codebuild”,“GenerateMakefile”,“关闭”);
在代码生成之后,创建一个包含源代码和构建信息文件的zip文件。
set_param (“rtwdemo_codebuild”,“PackageGeneratedCodeAndArtifacts”,“上”);
生成代码
执行代码生成命令。
slbuild (“rtwdemo_codebuild”);
###开始串行模型参考代码生成构建###成功更新了模型参考代码生成目标:rtwdemo_codebuild_ref ###开始构建过程:rtwdemo_codebuild ###成功完成代码生成:rtwdemo_codebuild构建摘要代码生成目标:模型重建行动的原因 ================================================================================ rtwdemo_codebuild_ref生成rtwdemo_codebuild_ref.c代码不存在。高级模型目标构建:模型重建行动的理由 ===================================================================================== rtwdemo_codebuild代码生成的代码生成信息文件不存在。构建2个模型中的2个(0个模型已经更新)构建持续时间:0h 0m 44.826s
检查生成的代码是否打包为zip文件。
dirrtwdemo_codebuild.zip
rtwdemo_codebuild.zip
切换到另一个开发环境
这是一个可选步骤。例如,如果当前的开发环境是一台Linux计算机,则可以将zip文件复制到一台Windows计算机,然后在该计算机上执行后续步骤。
解压缩源代码和构建信息文件
解压缩文件。
Rtwdemo_codebuild_files = unzip(“rtwdemo_codebuild.zip”);
标识包含顶部组件解压缩代码的文件夹。
Rtwdemo_codebuild_top_component_folder = fileparts(rtwdemo_codebuild_files{1});
使用默认工具链构建可执行文件
识别默认工具链(基于mex -setup选择的编译器)。
defaultToolchain = code .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。使用lcc-win64代替TMF。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(导出文件,' w ');写入文件(fid, [“出口”换行符]);写入文件(fid, [“rtwdemo_codebuild_initialize”换行符]);写入文件(fid, [“rtwdemo_codebuild_step”换行符]);写入文件(fid, [“rtwdemo_codebuild_terminate”换行符]);文件关闭(fid);结束
构建共享库。
codebuild (rtwdemo_codebuild_top_component_folder“BuildVariant”,“SHARED_LIBRARY”);
构建静态库
codebuild (rtwdemo_codebuild_top_component_folder“BuildVariant”,“STATIC_LIBRARY”);
创建CMake配置文件
生成一个平台和编译器独立的CMakeLists.txt文件的层次结构
codebuild (rtwdemo_codebuild_top_component_folder“BuildMethod”,“CMake”);
通过CMakeLists.txt文件,您可以使用第三方工具CMake为您选择的编译器环境生成makefile或工作区。如果您的开发计算机上安装了CMake,在MATLAB命令窗口中运行这些命令来构建可执行文件:
cd (rtwdemo_codebuild_top_component_folder)
cmake !
!cmake—构建。