我尝试运行使用 FaceLandmarkImg 的 matlab 脚本并收到以下消息(我用“用户”替换了我的用户名):
/home/user/Documents/OpenFace/build/bin/FaceLandmarkImg: /home/user/Documents/bin/glnxa64/libtiff.so.5: no version information available (required by /home/user/Documents/OpenFace/build/bin/FaceLandmarkImg)
/home/user/Documents/OpenFace/build/bin/FaceLandmarkImg: libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /home/user/Documents/OpenFace/build/bin/FaceLandmarkImg) /home/user/Documents/OpenFace/build/bin/FaceLandmarkImg: libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0)
/home/user/Documents/OpenFace/build/bin/FaceLandmarkImg: libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0) /home/user/Documents/OpenFace/build/bin/FaceLandmarkImg: libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libsnappy.so.1)
我安装了的最新版本ghostscript-9.24
,libstdc++.so.6
并且我检查过我拥有它GLIBCXX_3.4.21
(确实我有它)。
我认为这可能是路径或目录的问题,但我不知道如何解决它。
我对 Linux、Matlab 甚至 OpenFace 还很陌生,所以我的问题可能看起来很愚蠢...抱歉!
欢迎任何回答!
答案1
我做到了
LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libtiff.so.5" ./matlab
并且它成功了。
更多解释:看起来 matlab 无法找到这两个所需的库:libstdc++.so.6 和 libtiff.so.5 上面的命令在启动 matlab 之前“启动”了这两个库。所以现在 matlab 能够找到它们了。我认为避免这个问题的另一种方法是向 matlab 指定查找这些库的方法,但我无法做到这一点。