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

Matlab集成C++共享库构建时报错找不到-lting,请问libting是什么?

问题根因

你遇到的cannot find -lting错误不是系统缺少名为libting.so的依赖库,属于参数解析异常触发的错误,核心原因有两个:

  • Linux下链接器的-l参数遵循固定命名规则:-lxxx会自动搜索名为libxxx.so的共享库,你之前生成的共享库名为testing.so,没有标准的lib前缀,本身不符合链接器的查找规则
  • Matlab的clibgen工具在解析你传入的库名字符串时出现异常截断,把testing误识别为ting,才会出现查找libting.so的错误提示

解决步骤

1 重新生成符合规范的共享库

执行以下命令重新编译C++代码,注意添加-fPIC参数(Linux共享库强制要求的位置无关代码标识),同时给共享库添加标准lib前缀:

# 编译目标文件
g++ -fPIC -O3 -c testing.cpp -o testing.o
# 生成命名符合规范的共享库
g++ -shared -o libtesting.so testing.o

2 修改Matlab调用参数

调整clibgen.generateLibraryDefinition的参数,显式指定库搜索路径,避免路径解析错误:

clc;
currentPath = pwd;
clibgen.generateLibraryDefinition(fullfile(currentPath, "testing.h"),...
    "Libraries", "testing",... % 直接写库名,clibgen会自动补全lib前缀和.so后缀
    "LibraryPaths", currentPath,... % 显式指定库文件所在路径
    "PackageName", "integrationTest",...
    "ReturnCArrays",false,...
    "Verbose",true)

defineintegrationTest;
summary(defineintegrationTest)
build(defineintegrationTest)

3 配置共享库搜索路径

在启动Matlab的终端执行以下命令,将当前目录加入系统共享库搜索路径:

export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

完成以上操作后重新运行Matlab代码即可正常完成接口构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:45:00