Onlylg1 2024-09-21 10:15 采纳率: 0%
浏览 132

simulink 生成c代码报错

similink 生成c代码时报错
我通过matlab code生成了quadprog的c代码,然后通过mex将quadprog的代码生成了S Function build可以调用的文件,使用S Function build调用,程序可以正常运行。但是当simulink生成嵌入式c代码时,报错,具体内容如下:
Creating standalone executable "..\simulinktest.exe" ...
link /RELEASE /INCREMENTAL:NO /NOLOGO kernel32.lib ws2_32.lib mswsock.lib advapi32.lib -out:..\simulinktest.exe @simulinktest.rsp
my_quadprog_wrapper.obj : error LNK2019: 无法解析的外部符号 driver,该符号在函数 my_quadprog_Outputs_wrapper 中被引用
my_quadprog_wrapper.obj : error LNK2019: 无法解析的外部符号 rtIsInf,该符号在函数 my_quadprog_Outputs_wrapper 中被引用
my_quadprog_wrapper.obj : error LNK2019: 无法解析的外部符号 rtIsNaN,该符号在函数 my_quadprog_Outputs_wrapper 中被引用
my_quadprog_wrapper.obj : error LNK2019: 无法解析的外部符号 setProblemType,该符号在函数 my_quadprog_Outputs_wrapper 中被引用
..\simulinktest.exe : fatal error LNK1120: 4 个无法解析的外部命令
NMAKE : fatal error U1077: “G:\visual_studio\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.EXE”: 返回代码“0x460”
Stop.
在mex quadprog是也遇到过这种情况,通过这篇文章解决了(十分感谢这位佬哥的分享)。但是在simulink生成c代码时我不知道该怎么做,烦请各位佬哥佬姐多多指教。如果需要源文件,请联系我文章链接:https://blog.csdn.net/weixin_43321489/article/details/114683275?fromshare=blogdetail&sharetype=blogdetail&sharerId=114683275&sharerefer=PC&sharesource=Onlylg1&sharefrom=from_link

img

img

img

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-21 10:16
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您给出的信息来看,您在将MATLAB生成的嵌入式C代码与Simulink集成时遇到了链接错误。这些错误提示表明在编译过程中找不到某些外部符号(例如driver, rtIsInf, rtIsNaN, setProblemType等)。这些符号可能是在您的自定义函数或MEX文件中定义的,但在生成嵌入式代码时无法正确链接。

    为了解决这个问题,您可以尝试以下几个步骤:

    1. 确保所有源文件都被正确包含:检查生成的嵌入式C代码中的包含指令,确保所有必要的头文件都被包含进来。特别是与您的自定义函数和MEX文件相关的头文件。
    2. 检查MEX文件:确保您的MEX文件(例如my_quadprog_wrapper.c)在生成嵌入式代码时已经正确地转换为S-Function。这意味着您需要确保所有的函数和变量在MEX文件和嵌入式代码中都有相应的定义和声明。
    3. 检查符号定义:确认driver, rtIsInf, rtIsNaN, setProblemType等符号在您的代码中是否有明确的定义。如果这些符号是在某个特定的库或文件中定义的,确保在生成嵌入式代码时包含了该库或文件。
    4. 清理并重新生成:有时候,旧的编译文件或设置可能会导致问题。尝试清理您的构建环境,然后重新生成嵌入式代码。
    5. 查看编译器和链接器设置:确保编译器和链接器的设置是正确的,特别是与库和包含目录相关的设置。
    6. 查看Simulink的文档:Simulink的文档可能提供了关于如何正确集成自定义函数或MEX文件的指南。您可以查阅相关文档,了解如何正确设置和生成嵌入式代码。

    如果您能提供更多的关于如何生成嵌入式代码的详细步骤和配置设置,我可能会提供更具体的建议。另外,确认上述提到的符号的确切来源和作用也是很重要的,因为它们可能是问题的关键所在。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月21日