我编写了一个用MEX编译器调用Matlab脚本的c代码。 计划是使用main()中的系统(" ./ CCodeWMatlab")调用此函数
首先,当我尝试调用此函数时,我收到错误:#34;加载共享库时出错:libeng.so"。 然而,通过添加:" export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ usr / local / matlab71_sv / bin / glnxa64 / to .bashrc。"
在终端中运行./CcodeWMatlab。但是,如果我尝试输入sudo ./CcodeWMatlab,我会得到与第一次相同的错误:" "加载共享库时出错:libeng.so"。
在Main()中,有一些子程序需要以root身份运行。因此,如果没有sudo,则无法运行此选项。我需要的是为我的部分代码转换root权限的方法,最好是一个子程序。这可能吗?
答案 0 :(得分:0)
您可以尝试以下几点:
sudo -E ./CcodeWMatlab
要求sudo
保留您的整个环境。sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./CcodeWMatlab
仅保留该环境变量。这些不保证可以正常工作 - 您可能需要禁用重置sudo配置文件中的环境。