You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在KDevelop中通过CMakeLists配置C++调用Matlab Engine遇未定义引用问题

解决Matlab Engine调用中matOpen未定义引用的问题

这个问题我之前也碰到过,本质是链接阶段缺少了对应的Matlab库。你遇到的undefined reference to 'matOpen'错误,是因为matOpen这个函数属于Matlab的libmat.so库,而你的CMakeLists.txt里只链接了libeng.so和libmx.so,漏掉了这个关键库。

具体修复步骤

修改你的CMakeLists.txt,在target_link_libraries部分添加libmat.so的链接:

target_link_libraries( ${CMAKE_PROJECT_NAME} libmat.so )

完整的链接段应该是这样:

target_link_libraries(${CMAKE_PROJECT_NAME} -pthread )
target_link_libraries( ${CMAKE_PROJECT_NAME} libeng.so )
target_link_libraries( ${CMAKE_PROJECT_NAME} libmx.so )
target_link_libraries( ${CMAKE_PROJECT_NAME} libmat.so )

额外注意事项

  • 先确认你的Matlab安装路径/home/bruno/MATLAB/R2017a/bin/glnxa64/里确实存在libeng.so、libmx.so、libmat.so这几个库文件
  • 运行程序前,可能需要配置环境变量让系统能找到Matlab的动态库:
    export LD_LIBRARY_PATH=/home/bruno/MATLAB/R2017a/bin/glnxa64/:$LD_LIBRARY_PATH
    
  • 也可以直接把环境变量配置到CMake中,比如添加:
    set(ENV{LD_LIBRARY_PATH} "/home/bruno/MATLAB/R2017a/bin/glnxa64/:$ENV{LD_LIBRARY_PATH}")
    

内容的提问来源于stack exchange,提问作者sabruri1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:57