文件

将代码重新定位到其他开发环境与PackNgo

使用代码生成器packNGo选项在一个位置生成代码。在生成代码之后,收集编译器命令行选项,将生成的代码移动到另一个位置,并将生成的代码与自定义代码结合起来编译。

检查平台并设置路径和文件夹

对于本例,您必须让gcc工具链在Linux®平台上运行。在验证此平台之后,本例将设置路径、文件夹和文件。

当您重新运行该示例时,为了轻松清理生成的文件,工作文件夹(code_generation_area_dirbuild_area_dir)与源文件分开(models_dirhand_code_dir).

源文件和文件夹的所有位置都使用相对于包含示例. m文件的文件夹的路径。

如果ismac.%代码在MAC平台上运行disp ('平台(Macintosh)不支持。金宝appeleesifispc.%在Windows平台上运行的代码disp (“不支持平台(Windows)”。金宝appeleesifIsunix.
originalFolder = pwd;thisFilesFullName = mfilename (' fullpath ');thisFilesAbsolutePath = fileparts(thisFilesFullName);modelsFolder = fullfile(thisFilesAbsolutePath,“models_dir”);codeGenerationRootFolder =......fullfile(thisfilesabsolutepath,“code_generation_area_dir”);buildAreaRootFolder =......fullfile(thisfilesabsolutepath,'build_area_dir');手推车=......fullfile(thisfilesabsolutepath,“hand_code_dir”);

清理

要从先前运行的示例中消除构建工件,此示例搜索并消除包含以前运行的这些副产品的文件夹。下载188bet金宝搏

如果(0 <存在(CodegenerationRootFolder,“dir”) ) 清除梅克斯;删除目录(codeGenerationRootFolder');其他的%没有以前的codegenerationrootfolder。结尾mkdir(Codegenerationrootfolder);如果(0 < exist(buildAreaRootFolder,“dir”) ) 清除梅克斯;RMDIR(BuildAreAroTfolder,');其他的%没有以前的buildarearootfolder。结尾MKDIR(BuildareAreoTfolder);如果0 < exist(modelsFolder,“dir”) ) 清除梅克斯;删除目录(modelsFolder');其他的%没有以前的型号文件。结尾mkdir(型号);COPYFILE((FullFile(Matlabroot,“工具箱”'RTW''RTWDEMOS'“rtwdemo_packngo”'rtwdemo_packngo.slx')),......(fullfile (modelsFolder'rtwdemo_packngo.slx')),“f”);如果(0 < exist(handCodeFolder,“dir”) ) 清除梅克斯;删除目录(handCodeFolder');其他的%没有以前的handCodeFolder。结尾mkdir(手工驾驶员);COPYFILE((FullFile(Matlabroot,“工具箱”'RTW''RTWDEMOS'“rtwdemo_packngo”'main.c')),......(fullfile (handCodeFolder'main.c')),“f”);COPYFILE((FullFile(Matlabroot,“工具箱”'RTW''RTWDEMOS'“rtwdemo_packngo”'main.h')),......(fullfile (handCodeFolder'main.h')),“f”);Directoriestoaddtomatlabpathcellstr =.......{......thisFilesAbsolutePath,......款式文件员......};为了currentDirectory = 1: numel(directoriesToAddToMatlabPathCellStr) currentDirectory = directoriesToAddToMatlabPathCellStr{directoryIndex};目录(currentDirectory);结尾

用packNGo生成代码并输出一个.zip文件

的代码生成配置rtwdemo_packngo模型使仅生成代码范围 (GenCodeOnly),并启用包代码和工件范围 (packagegeneratedcodeandartifact.).这些选项指示代码生成器创建packNGo存档(。压缩文件)并停止构建过程而不编译生成的代码。稍后将使用集成的定制代码进行编译,以替换生成的代码c文件。

CD(CodegenerationRootFolder);modelbasename =“rtwdemo_packngo”;Open_System(ModelBaseName);SLBUILD(MODELBASENAME);close_system(modelbasename);
###成功完成model: rtwdemo_packngo的代码生成

从makefile中提取构建信息

使用Toolchain方法进行构建过程时,可以从生成的Makefile中提取构建信息。信息包括Makefile中出现的源文件,依赖文件和宏定义和宏定义和值。使用当前工作文件夹设置为包含生成的makefile,RTWDEMO_PACKNGO.mk的文件夹,在命令窗口中,键入:

光盘('rtwdemo_packngo_grt_rtw');系统(“gmake - f rtwdemo_packngo。可信息”
###产品= ../rtwdemo_packngo ### product_type =可执行文件### build_type =顶级独立可执行文件###包括= -i / tmp / bdoc19b_1305395_228588 / ex21882019 / code_generation_area_dir -i / tmp / bdoc19b_1305395_2228588 / tp53651845/ ex21882019 / code_generation_area_dir / rtwdemo_packngo_grt_rtw -i / mathworks / demel / bat / bdoc19b / build / matlab / extern / compress -i / mathworks / devel金宝app / bat / bdoc19b / build / matlab / simulink / compness -i / mathworks / devel / bat/ bdoc19b / build / matlab / rtw / src -i / mathworks / devel / bat / bdoc19b / build / matlab / rtw / c / src / ext_mode / common ### defines = -dclassic_interface = 0 -dallocationfcn = 0  -DMAT_FILE = 0 -DONESTEPFCN = 1 -DTERMFCN = 1 -DMULTI_INSTANCE_CODE = 0 -DINTEGER_CODE = 0 5'-DMT = 0 -DTID01EQ = 0 -DMODEL = rtwdemo_packngo -DNUMST = 1 -DNCSTATES = 0 -DHAVESTDIO -DRT -DUSE_RTMODEL -DUNIX ###all_srcs = /tmp/bdoc19b_1305395_228588/tp53651845/th53651845/th53651845/th5365188/tp5365188/tp53651845/ ex21882019/code_generation_area_dir/rtwdemo_packngo_grt_rtw/rtwdemo_packngo.c/rtwdemo_packngo.c / mathworks/devel/bat/bdoc19b/build/matlab/rtw/c/src/common/rt_main.c ### all_objs = rtwdemo_packngo.o rt_main.o ### libs = ### modelRef_libs = ### system_libs = -lm ### toolchain_libs = ### cflags = -c -fwrapv -ansi-blyantic -wno-long  -fpic -o0 -dclassic_interface = 0 -dallocatefcn = 0 -dmat_file = 0 -donestepfcn = 1 -dttermfcn = 1 -dmulti_instance_code = 0 -dinteger_code = 0 -dmt = 0 -dtid01eq = 0 -dmodel = rtwdemo_packngo -dnumst = 1 -dncstates =0 -DHAVESTDIO -DRT -DUSE_RTMODEL -DUNIX -I / TMP / Bdoc19b_1305395_228588 / tp53651845 / ex21882019 / code_generation_area_dir -I / TMP / Bdoc19b_1305395_228588 / tp53651845 / ex21882019 / code_generation_area_dir / rtwdemo_packngo_grt_rtw -I / MathWorks公司/ devel的/蝙蝠/ Bdoc19b /建造/ MATLAB /extern / compness -i / mathworks / devel / bat / bdoc19b / 金宝appbuild / matlab / simulink / compress -i / mathworks / devel / bat / bdoc19b / build / matlab / RTW / C / Src -i / Mathworks / Devel / Bat /bdoc19b / build / matlab / rtw / c / src / ext_mode / common ### ldflags = -wl,-rpath,/ mathworks / devel / bat / bdoc19b / build / matlab / bin / glnxa64,-l / mathworks / devel /蝙蝠/ bdoc19b / build / matlab / bin / glnx64 ### sharedlib_ldflags = -shared -wl,-rpath,/ matHWOWES / DEVEL / BAT / BDOC19B / BUILD / MATLAB / BIN / GLNXA64,-L / MATHWORKS / DEVEL / BAT / BDOC19B / BUILD / MATLAB / BIN / GLNXA64 -WL, - 无undefined ### CPPFLAGS = -C  -fwrapv -std = c ++ 03 -pno-long-long -fpic -o0 -dclassic_interface = 0 -dallocatefcn = 0 -dmat_file = 0 -donestepfcn = 1 -dtermfcn = 1 -dmulti_instance_code = 0 -dinteger_code = 0 -dmt= 0 -DTID01EQ = 0 -DMODEL = rtwdemo_packngo -DNUMST = 1 -DNCSTATES = 0 -DHAVESTDIO -DRT -DUSE_RTMODEL -DUNIX -I / TMP / Bdoc19b_1305395_228588 / tp53651845 / ex21882019 / code_generation_area_dir -I / TMP / Bdoc19b_1305395_228588 / tp53651845 / ex21882019 / code_generation_area_dir/ rtwdemo_packngo_grt_rtw -i / mathworks / devel / bat / bdoc19b / build / matlab / extern / compnety -i / mathworks / devel / b金宝appat / bdoc19b / build / matlab / simulink / compness -i / mathworks / devel / bat / bdoc19b / but/ matlab / rtw / c / src -i / mathworks / devel / bat / bdoc19b / build / matlab / rtw / c / src / ext_mode / common ### cpp_ldflags = -wl,-rpath,/ mathworks / devel / bat /BDOC19B / BUILD / MATLAB / BIN / GLNXA64,-L / MATHWORKS / DEVEL / BAT / BDOC19B / BUILD / MATLAB / BIN / GLNXA64 ### CPP_SHAREDLIB_ldflags = -shared -wl,-rpath,/ mathworks / devel / bat / bdoc19b / build / matlab / bin / glnxa64,-l / mathworks / devel / bat / bdoc19b / build / matlab / bin / glnxa64 -wl, -no-notefined ### arflags = ruvs ### mex_cflags = ### mex_cppflags = ### mex_ldfldlags = ### download_flags = ### Execute_Flags = ### make_flags = -ftrwdemo_packngo.mk ans = 0

有关在Windows®平台上执行类似操作的信息,请参阅model.bat描述管理构建过程文件

将生成的代码和自定义代码移动到Cant Build Process的公共位置

要集成生成的代码和自定义代码,此示例将文件移动到构建过程的公共位置。PackNgo选项中的存档已解压缩。

CD(BuildareAreoTfolder);生成packngoarchiveshortname =......[modelbasename,“zip”];filesToCopyCellStr =......{......fullfile(codeGenerationRootFolder, generatedPackNGoArchiveShortName),......fullfile (handCodeFolder'main.h'),......fullfile (handCodeFolder'main.c'......};fileCopyFunctionHandle =......@(sourcefilefullname)copyfile(sourcefilefullname,buildarearootfolder);为了sourcefileindex = 1:numel(filestocopycellstr)currentsourcefile = filestocopycellstr {sourcefileIndex};FileCopyFunceHandle(CurrentSourceFile);结尾生成的packngoarchedestinationfullname =......fullfile(buildAreaRootFolder, generatedPackNGoArchiveShortName);解压缩(generatedPackNGoArchiveDestinationFullName);

构建构建命令

为了编译生成的代码和集成的自定义代码,这个例子为gcc编译器和工具构造了一个build命令:

  • 编译生成的和定制的源文件

  • 指定预处理器可以定位包含的标题文件所需的文件夹

  • 提供正确的- d生成的代码所需的预处理器宏的参数

识别构建命令的源文件

生成的源文件位于从packNGo归档文件(。压缩文件)。文件名包含:

  • 模型名称

  • 系统目标文件(在模型配置集中选择)

  • 原始代码生成文件夹

生成的codesubfoldername =......[modelbasename,“_grt_rtw”];generationcodefolderfullname =......fullfile (buildAreaRootFolder“code_generation_area_dir”,生成的codesubfoldername);sourcefilefullamescellstr =......{......fullfile (buildAreaRootFolder'main.c'),......fullfile (generatedCodeFolderFullName“rtwdemo_packngo.c”......};

识别头文件文件夹

所需的头文件文件夹包括:

  • 自定义头文件位置

  • 生成的头文件位置

  • 包含packNGo操作从MATLAB安装文件夹复制到packNGo存档中的文件的位置

[~, matlabReleaseFolderName] = fileparts(matlabroot());headerFileDirectoriesCellStr =......{......buildAreaRootFolder,......generatedCodeFolderFullName,......fullfile(buildarearootfolder,matlabreleasefoldername,'extern''包括'),......fullfile(buildarearootfolder,matlabreleasefoldername,'金宝appsimulink''包括'......};

识别所需的预处理器宏

有许多预处理器宏必须定义为指导代码中的条件编译。可以从宏名称和值复制defines.txt文件在生成的代码文件夹中。

commandLineDefinesCellStr =......{......'model = rtwdemo_packngo'......“NUMST = 1”......'ncstates = 0'......“HAVESTDIO”......'RT'......'use_rtmodel'......'unix'......“MAT_FILE = 0”......'integer_code = 0'......'mt = 0'......'classic_interface = 0'......“ALLOCATIONFCN = 0”......'oneestepfcn = 1'......“TERMFCN = 1”......“MULTI_INSTANCE_CODE = 0”......“TID01EQ = 0”......};

准备单元格数组数据为字符串

在将构建命令的源、标题、文件夹和宏信息收集到单元格数组数据之后,本示例通过将该数据重新组织为正确格式的字符串来构造构建命令。这些字符串作为编译命令的一部分。

commandLineDefinesCompilerArgumentString =......strjoin (strcat ('-d'commandLineDefinesCellStr),'');sourcefilescompilerargumentstring =.......['“'strjoin (sourceFileFullNamesCellStr“”“”'“'];inclusionDirectoriesCompilerArgumentString =......[“我””Strjoin(头部菲律宾灯圈,'“ -一世”''“'];编译commandstring =.......[......“海合会”''......“v”''......sourceFilesCompilerArgumentString,''......commandLineDefinesCompilerArgumentString,''......ComptusionDirectoriesCompilerargumentString.......];

运行编译命令

Compilation命令是:

[compilationResult, compilationOutput] =......系统(compilationCommandString);

查看编译结果

结果使用返回值的操作系统约定,因为“系统(...)”返回操作系统的结果。结果,“0”表示成功,而不是“1”/“真实。

断言((0 ==编译程序),编译输出);DISP(编译输出);
使用内置规格。COLLECT\u GCC=GCC COLLECT\u LTO\u WRAPPER=/mathworks/hub/3rdparty/internal/3349624/glnxa64/GCC-6.3.0/bin/。/libexec/GCC/x86\u 64-pc-linux-gnu/6.3.0/LTO-WRAPPER目标:x86\u 64-pc-linux-gnu配置为:/mathworks/devel/sandbox/rjarett/3p-internal/3p/sources/GCC-6.3/configure用GMP= /MaWorks/Davel/Sjbox/3J/3P/GLNXA64/GCC-63/GMP-4.3——MPFR/MathWorks/DeVele/Stbox /RjRaTeT/3p内/3P/GONXA64/GCC-63/MPFR——用MPC= /MathWorks/DeVel/Stbox /RjRaTeT/3P内部/3P/DIP/GLNXA64/GCC-63/MPC-ActudioLoC=C,C++,fortran——带有bugurl=http://inside.mathworks.com/wiki/Suspected_compiler_bugs,_调试--启用共享--启用链接器构建id--启用插件--启用检查=发布--启用多拱--启用黄金--启用ld=默认--启用libstdcxx时间=否--前缀=/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0--使用pkgversion='MW gcc 6.3.0-GLIBC2.12-gold'--使用tune=generic--使用系统zlib--启用多库--multilib list=m32,m64——带arch目录=amd64——带arch-32=i586——带abi=m64线程模型:posix gcc版本6.3.0(MW gcc 6.3.0-GLIBC2.12-gold)COLLECT\u GCC\u OPTIONS='-v'-D''MODEL=rtwdemo\u packngo'-D''NUMST=1'-D''NCSTATES=0'-D''HAVESTDIO'-D''RT'-D''USE\u RTMODEL'-D''UNIX'-D''MAT FILE=0'-D''INTEGER\u CODE=0'-D''MT MT 0'-D''-D''CLASSIC\u接口=0'-D''分配fcn=0'-D''-D'-D''ONESTEPFCN=1'-D''TERMFCN=1'-D''多实例\u代码=0'-tidq=0'-0'-0“/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir'-I'/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw'-I'-I'/tmp/Bdoc19b__13053; area 228588/tp53651845/ex21882019/build_area(dir/matlab'-I'-I'-I''“/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include'-mtune=generic'-march=x86-64'/mathworks/hub/3rdparty/internal/3349624/gcc-6.3.0/bin/。/libexec/gcc/x86-pc-linux-gnu/6.3.0/cc1-quiet-v-I-I/tmp/Bdoc19b_-u 13053588/tp53285/exu-1845/build-I”/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw-I/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/b金宝appuild area dir/matlab/extern/include-I/tmp/Bdoc19b_13053651845/include-I/ex218588/tp53651845/build area-imu-simulink-x86/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin//lib/gcc/x86\u 64-pc-linux-gnu/6.3.0/-D MODEL=rtwdemo\u packngo-D NUMST=1-D NCSTATES=0-D HAVESTDIO-D RT-D使用RTMODEL-D UNIX-D MAT\u文件=0-D整数\u代码=0-D MT=0-D经典\u接口=0-D分配fcn=0-D onestepn=1-D多术语代码=0-tidu=0/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/main.c-quiet-dumpbase main.c-mtune=generic-march=x86-64-auxbase main-version-o/tmp/Bdoc19b_1305395_228588/ccxN9PCC.s GNU C11(MW GCC 6.3.0-GLIBC2.12-gold)版本6.3.0(x86_64-pc-linux-GNU-GNU)由GNU c 6.3.0版、GMP版、FR.2.4.2.2.4版编译,MPC版本0.8.2,isl版本none GGC heuristics:--param GGC min expand=100--param GGC min heapsize=131072忽略不存在的目录“/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/。/../../../../../x86\u 64-pc-linux-gnu/include”忽略重复目录“/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/。/lib/gcc/。/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/include“忽略不存在的目录”/usr/local/include/x86_64-linux-gnu”忽略重复目录”/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin//lib/gcc/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/包括固定的“忽略不存在的目录”/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/。/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../x86.3.0/../../x86@/。。。"搜索从这里开始:#包含<…>搜索从这里开始:/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt/rtw/tmp/Bdoc19b_1305395_228588/tp53655/ex21882019/build area/matlab include/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin//lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/mathworks/hub/3rdparty/internal/3349624/glnxa64-pc-linux-gnu/6.3.0/include/usr/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/。/lib/gcc/。/../include/usr/include/x86_64-linux-gnu/usr/include结束搜索列表。GNU C11(MW GCC 6.3.0-GLIBC2.12-gold)版本6.3.0(x86_64-pc-linux-GNU),由GNU C版本6.3.0、GMP版本4.3.2、MPFR版本2.4.2、MPC版本0.8.2、isl版本none GGC启发式算法编译:-参数GGC min expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: c26022ef40cbe05afcbd998c36f33b4e COLLECT_GCC_OPTIONS='-v' '-D' 'MODEL=rtwdemo_packngo' '-D' 'NUMST=1' '-D' 'NCSTATES=0' '-D' 'HAVESTDIO' '-D' 'RT' '-D' 'USE_RTMODEL' '-D' 'UNIX' '-D' 'MAT_FILE=0' '-D' 'INTEGER_CODE=0' '-D' 'MT=0' '-D' 'CLASSIC_INTERFACE=0' '-D' 'ALLOCATIONFCN=0' '-D' 'ONESTEPFCN=1' '-D' 'TERMFCN=1' '-D' 'MULTI_INSTANCE_CODE=0' '-D' 'TID01EQ=0' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include' '-mtune=generic' '-march=x86-64' /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/as -v -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include --64 -o /tmp/Bdoc19b_1305395_228588/ccNYHLFb.o /tmp/Bdoc19b_1305395_228588/ccxN9PCC.s GNU assembler version 2.28.1 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.28.1 COLLECT_GCC_OPTIONS='-v' '-D' 'MODEL=rtwdemo_packngo' '-D' 'NUMST=1' '-D' 'NCSTATES=0' '-D' 'HAVESTDIO' '-D' 'RT' '-D' 'USE_RTMODEL' '-D' 'UNIX' '-D' 'MAT_FILE=0' '-D' 'INTEGER_CODE=0' '-D' 'MT=0' '-D' 'CLASSIC_INTERFACE=0' '-D' 'ALLOCATIONFCN=0' '-D' 'ONESTEPFCN=1' '-D' 'TERMFCN=1' '-D' 'MULTI_INSTANCE_CODE=0' '-D' 'TID01EQ=0' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include' '-mtune=generic' '-march=x86-64' /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/cc1 -quiet -v -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include -imultiarch x86_64-linux-gnu -iprefix /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/ -D MODEL=rtwdemo_packngo -D NUMST=1 -D NCSTATES=0 -D HAVESTDIO -D RT -D USE_RTMODEL -D UNIX -D MAT_FILE=0 -D INTEGER_CODE=0 -D MT=0 -D CLASSIC_INTERFACE=0 -D ALLOCATIONFCN=0 -D ONESTEPFCN=1 -D TERMFCN=1 -D MULTI_INSTANCE_CODE=0 -D TID01EQ=0 /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw/rtwdemo_packngo.c -quiet -dumpbase rtwdemo_packngo.c -mtune=generic -march=x86-64 -auxbase rtwdemo_packngo -version -o /tmp/Bdoc19b_1305395_228588/ccxN9PCC.s GNU C11 (MW GCC 6.3.0-GLIBC2.12-gold) version 6.3.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.3.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/include" ignoring duplicate directory "/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.3.0/include" ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring duplicate directory "/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed" ignoring nonexistent directory "/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/include /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed /usr/local/include /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/../../include /usr/include/x86_64-linux-gnu /usr/include End of search list. GNU C11 (MW GCC 6.3.0-GLIBC2.12-gold) version 6.3.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.3.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: c26022ef40cbe05afcbd998c36f33b4e COLLECT_GCC_OPTIONS='-v' '-D' 'MODEL=rtwdemo_packngo' '-D' 'NUMST=1' '-D' 'NCSTATES=0' '-D' 'HAVESTDIO' '-D' 'RT' '-D' 'USE_RTMODEL' '-D' 'UNIX' '-D' 'MAT_FILE=0' '-D' 'INTEGER_CODE=0' '-D' 'MT=0' '-D' 'CLASSIC_INTERFACE=0' '-D' 'ALLOCATIONFCN=0' '-D' 'ONESTEPFCN=1' '-D' 'TERMFCN=1' '-D' 'MULTI_INSTANCE_CODE=0' '-D' 'TID01EQ=0' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include' '-mtune=generic' '-march=x86-64' /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/as -v -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include -I /tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include --64 -o /tmp/Bdoc19b_1305395_228588/ccCzitLK.o /tmp/Bdoc19b_1305395_228588/ccxN9PCC.s GNU assembler version 2.28.1 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.28.1 COMPILER_PATH=/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ LIBRARY_PATH=/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/lib/:/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-D' 'MODEL=rtwdemo_packngo' '-D' 'NUMST=1' '-D' 'NCSTATES=0' '-D' 'HAVESTDIO' '-D' 'RT' '-D' 'USE_RTMODEL' '-D' 'UNIX' '-D' 'MAT_FILE=0' '-D' 'INTEGER_CODE=0' '-D' 'MT=0' '-D' 'CLASSIC_INTERFACE=0' '-D' 'ALLOCATIONFCN=0' '-D' 'ONESTEPFCN=1' '-D' 'TERMFCN=1' '-D' 'MULTI_INSTANCE_CODE=0' '-D' 'TID01EQ=0' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include' '-mtune=generic' '-march=x86-64' /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/collect2 -plugin /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/liblto_plugin.so -plugin-opt=/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/Bdoc19b_1305395_228588/ccKSkFRj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtbegin.o -L/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0 -L/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc -L/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/lib -L/mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../.. /tmp/Bdoc19b_1305395_228588/ccNYHLFb.o /tmp/Bdoc19b_1305395_228588/ccCzitLK.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o COLLECT_GCC_OPTIONS='-v' '-D' 'MODEL=rtwdemo_packngo' '-D' 'NUMST=1' '-D' 'NCSTATES=0' '-D' 'HAVESTDIO' '-D' 'RT' '-D' 'USE_RTMODEL' '-D' 'UNIX' '-D' 'MAT_FILE=0' '-D' 'INTEGER_CODE=0' '-D' 'MT=0' '-D' 'CLASSIC_INTERFACE=0' '-D' 'ALLOCATIONFCN=0' '-D' 'ONESTEPFCN=1' '-D' 'TERMFCN=1' '-D' 'MULTI_INSTANCE_CODE=0' '-D' 'TID01EQ=0' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/code_generation_area_dir/rtwdemo_packngo_grt_rtw' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/extern/include' '-I' '/tmp/Bdoc19b_1305395_228588/tp53651845/ex21882019/build_area_dir/matlab/simulink/include' '-mtune=generic' '-march=x86-64'

调用集成的、已编译的可执行文件

运行编译可执行文件会产生此输出:

[executionResult, executionOutput] = system(“a.o ut /。”);断言((0 == executionResult),ExecutionOutput);disp(executionOutput);CD(原创员);
输入:1.000000输出:42.000000输入:2.000000输出:84.000000输入:3.000000输出:126.000000输入:4.000000输出:168.000000输入:5.000000输出:210.000000

将代码重定位到其他平台或工具链的注意事项

这个示例展示了如何使用packNGo重新定位代码,并将自定义代码与生成的代码集成在一起。这些技术有助于将生成的代码重新定位到其他平台(例如,从Linux®到Windows®)。本示例中展示如何构造build命令的部分提供了支持代码重定位的信息。金宝app

目标平台上的构建命令(例如,Windows®上的Microsoft Visual C/ c++ MSVC)尽可能接近源平台上的构建命令中的构建工具标志和定义(例如,Linux®上的gcc)。需要一些标志和定义(例如,源文件和依赖文件列表)。其他标志是可选的(例如,编译器优化在不同的编译器中是不同的)。

其他的disp (平台不支持。金宝app结尾