如何从Simulink编译/链接生成的C代码

问题描述

我有一个生成的.zip文件,其中包含从Simulink模型生成的C代码。 目的是在一个可以从.NET Core后端使用的共享库中编译此代码

我必须将Windows作为Unix系统都进行编译,因为大多数开发人员都在使用Windows,而服务器在Unix上运行(而我在osx上运行)。

拉链具有以下结构:

    optimizationModel_grt_rtw
    R2019b
       extern/include
       rtw/c/src/
       simulink/include 

我还有一个“脚本”,该脚本使用_grt_rtw文件夹中的模型。 “脚本”包含使用该模型的一个功能

看来我可以按如下所示成功编译它:

    gcc -I ./optimlib/R2019b/extern/include/ \
    -I ./optimlib/R2019b/simulink/include/ \
    -I ./optimlib/optimizationModel4_grt_rtw/ \
    -I ./optimlib/R2019b/rtw/c/src/ \
    -c -fpic src/optimumCalc.c \
    -o out/optimumCalc.o

但是当我尝试链接时,会出现很多x86_64体系结构未使用引用的错误。我很确定代码中所有内容都存在。

错误日志:

Undefined symbols for architecture x86_64:
  "_optimizationModel4_B",referenced from:
      _calcoptimum in optimumCalc.o
  "_optimizationModel4_U",referenced from:
      _calcoptimum in optimumCalc.o
  "_optimizationModel4_Y",referenced from:
      _calcoptimum in optimumCalc.o
  "_optimizationModel4_initialize",referenced from:
      _calcoptimum in optimumCalc.o
  "_optimizationModel4_step",referenced from:
      _calcoptimum in optimumCalc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command Failed with exit code 1 (use -v to see invocation)

我使用的链接器命令如下: gcc -dynamiclib out/optimumCalc.o -o out/optimlib.dylib

我认为链接器命令缺少某些内容,但我无法弄清楚。我还尝试传递通过第一个命令传递的-I参数。

在没有安装MATLAB / Simulink环境的系统上,我真的找不到任何有关如何使用gcc进行编译的文档。如果有人可以将我指向正确的方向或在链接器命令中看到我所缺少的内容

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)