首页 文章

使用两个Simulink / MATLAB静态库

提问于
浏览
3

我有C应用程序,它使用两个 static 库 . 这些库的源代码由Simulink / MATLAB生成和构建 .
问题是Simulink会生成 extern non-static 函数
real_T rt_urand_Upu32_Yd_f_pw(uint32_T *u) for block "Uniform Random Number"进入每个模型的MyModel.c文件 . 当我在我的C应用程序中包含这些库时,我遇到了函数重定义的链接器错误 .

有没有办法在Simulink中更改代码生成过程?

1 回答

  • 2

    Your problem as I understand it: 你的2个库是由2个不同的Simulink模型生成的,它们都使用这个块,所以显然Simulink Coder不知道你想要同时使用它们并只生成两次相同的函数 .

    如果可以只有1个库而不是2个库,那么这里有一些建议 .

    Proposal: 将两个模型作为模型参考放在一个顶级模型中 . 生成代码 . Simulink Coder意识到该块在两个模型中都使用,并且只生成一次该函数 .

    Proposal2: 将带有Function包装的子系统中的Uniform Random Number块包装到单独的C文件中 . 将生成的两个模型的源文件一起编译,删除单独生成的C文件的一个副本 .

    parameters for function packaging

相关问题