我正在将 Docker 与 Ubuntu 16.04 的图像一起使用。我正在使用这个 docker 来运行:
在 docker 中安装 MCR 之前,我已经使用以下命令安装了 boost:
$ sudo apt-get install -y libboost-all-dev
Run Code Online (Sandbox Code Playgroud)
我能够包装 C++ 类并在 python 中调用它们。然后我安装了 MCR,其中一项要求是设置LD_LIBRARY_PATH
为 Matlab 的库。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/MATLAB/MATLAB_Runtime/v94/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/extern/bin/glnxa64
Run Code Online (Sandbox Code Playgroud)
它起作用了,我能够在 python 中运行 matlab 的 python 包,但是由于LD_LIBRARY_PATH
. 例如,当我尝试在 python 中导入 C++ 类时出现以下错误:
/usr/lib/x86_64-linux-gnu/libpython3.4m.so.1.0: undefined symbol: XML_SetHashSalt
Run Code Online (Sandbox Code Playgroud)
如果我取消设置LD_LIBRARY_PATH
C++ 导入工作但 MCR 失败。那么问题LD_LIBRARY_PATH
应该是什么才能成功运行 C++ 类和 Matlab 的 …