我在matlab中有一个函数,它写了一个我在qt项目中使用的file.txt。
所以,
当我使用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
答案 0 :(得分:4)
正如@grungetta也指出的那样,问题可能与MATLAB本地库路径无关,而是看不到你的Qt库,如libQtMultimedia.so
,它通常应该在任何shell会话中通过{{1}显示的路径中变种
解决此问题的一种方法是在MATLAB运行会话中明确设置LD_LIBRARY_PATH
的值(如果需要继续,则重新存储它)。 MATLAB脚本的一组示例命令可能是:
LD_LIBRARY_PATH
答案 1 :(得分:0)
我不完全确定你想以什么方式调用Qt项目;但是,MATLAB system命令可能会有所帮助。此命令用于执行操作系统命令并返回结果。
因此,如果您只是想从MATLAB开始执行,这可能就是您想要的。
答案 2 :(得分:0)
我没有任何使用Matlab的经验,但这是我的2美分。
如果/ home / matt / Desktop / PlaneVolumeFinal / PlaneVolumeGui在命令提示符下工作正常,那么似乎MatLab无法找到libQtCore.so(我不确定如何命名库,但是我指的是QtCore库)。在这种情况下,将Qt的核心库复制到MatLab的一个搜索位置并尝试。 如果它从命令提示符中给出了相同的错误,那么这意味着Qt的库不在搜索路径中。也许你可以在LD_LIBRARY_PATH中添加PATH_TO_QTLIBS。
另一个原因可能是您的系统上可能有多个版本的Qt,并且当您尝试运行该应用程序时,加载程序正在尝试引用其他版本。
希望这有帮助。
答案 3 :(得分:0)
这可能是库版本的问题。二进制文件是否使用与系统QT不同的QT版本编译? 系统中有多少个库版本? 执行“ldd / home / matt / Desktop / PlaneVolumeFinal / PlaneVolumeGui”时输出结果是什么?