我在 matlab 中有一个函数可以写入一个 file.txt,我在 qt 项目中使用它。
So,
当我使用 unix() 获取要运行的 qt 编译可执行文件时,我有一个 Matlab 文件,但出现错误。
代码:
unix('/home/matt/Desktop/PlaneVolumeFinal/PlaneVolumeGui');
错误:
/home/matt/Desktop/PlaneVolumeFinal/PlaneVolumeGui: symbol lookup error: /home/matt/Desktop
/PlaneVolumeFinal/PlaneVolumeGui: undefined symbol: _ZN9QListData7detach3Ev
正如 @grungetta 也指出的那样,该问题可能与 MATLAB 本地库路径看不到您的 Qt 库有关,例如libQtMultimedia.so
,通常应该在任何 shell 会话中可见的路径中LD_LIBRARY_PATH
var.
解决此问题的一种方法是明确设置LD_LIBRARY_PATH
从 MATLAB 运行会话中(如果需要继续,则重新存储它)。 MATLAB 脚本的命令示例集可能是:
%*** save local (MATLAB's) LIBRARY PATH
libPathLocal = getenv('LD_LIBRARY_PATH');
%*** set your global LIBRARY PATH
PATH_LD_LIBRARY = '/usr/lib/' % or any string containing library files required
setenv('LD_LIBRARY_PATH', PATH_LD_LIBRARY);
%*** call binary through 'unix' or 'system'
system('/home/matt/Desktop/PlaneVolumeFinal/PlaneVolumeGui');
%*** restore session's MATLAB's library path
setenv('LD_LIBRARY_PATH', libPathLocal);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)