为什么运行UNIX“卷曲”命令在MATLAB导致一个错误?

41视图(30天)
使用MATLAB中的“卷曲”命令的“系统”功能可能会导致一个错误,如以下:
> > [A, cURL_out] =系统(“curl http://www.google.com”)
一个=
133年
cURL_out =
dyld:图书馆不加载:/ opt /地方/ lib / libcurl.4.dylib
引用来自:/ opt /地方/ bin /卷发
原因:不兼容的图书馆版本:旋度需要版本8.0.0或
后,但libcurl.4。dylibprovides version 7.0.0
另一个可能的错误是:
> > [A, cURL_out] =系统(“curl http://www.google.com”)
一个=
133年
cURL_out =
curl: /usr/local/MATLAB/R2012a/bin/glnx86/libcurl.so。4:没有版本可用的信息
由旋度(必需)
curl: (48)未知选项是libcurl传入

接受的答案

MathWorks支金宝app持团队
MathWorks支金宝app持团队 2021年10月22日
编辑:MathWorks支金宝app持团队 2021年10月26日
这个错误的原因是,MATLAB附带自己的“libcurl”文件(“libcurl.so。4“Linux上和“libcurl.4。dylib" on macOS), which is incompatible with the system's “curl”.
这可以通过包括系统的本机“libcurl”来解决图书馆“LD_LIBRARY_PATH环境变量(在Linux上),或“DYLD_LIBRARY_PATH”环境变量(macOS)。这个变量是由MATLAB找到共享库在运行时使用。使用以下步骤:
1)首先,找到“卷曲”二进制所在地执行这个命令在您的系统上的一个终端:
美元哪一个旋度
2)接下来,找到兼容的“libcurl”图书馆的位置对于这个“卷曲”命令在终端使用以下命令:
美元lddCURL_PATH
“CURL_PATH”是在步骤1中发现的道路。你可以另外运行以下命令,如果它在您的系统上可用:
美元otool- l CURL_PATH
上面的命令的输出将提供一个列表的“卷曲”命令所使用的库,这些库的位置。请注意“libcurl.so的位置。4”或“libcurl.4。dylib” file, on Linux and macOS, respectively. Note, to more easily find this library, try piping the output of the above command to the “grep” command like so: “ldd CURL_PATH | grep libcurl”.
3)开始MATLAB。
4)在MATLAB中,设置“LD_LIBRARY_PATH”(Linux)或“DYLD_LIBRARY_PATH”(macOS)环境变量包括在步骤2中“libcurl”发现的位置(称之为位置LIBCURL_PATH)一样:
> > path1 = getenv (“LD_LIBRARY_PATH”)%现有存储路径
> > = [LIBCURL_PATH路径“:”path1]%兼容libcurl添加到路径
> > setenv (“LD_LIBRARY_PATH”路径)%设置路径
现在,您应该能够使用MATLAB中“卷曲”命令。请注意,步骤4的环境变量更改将消失一旦退出MATLAB。MATLAB会话之间保持这些变化,将步骤4中3行代码到MATLAB的启动。m文件。关于这个文件的更多信息,请参阅以下链接:
2的评论
马蒂·Kaupenjohann
马蒂·Kaupenjohann 2022年5月5日
OpenSUSE LEAP15.3这里没有工作。
我的解决方案:
路径= getenv (“LD_LIBRARY_PATH”);
setenv (“LD_LIBRARY_PATH”,)
status1 =系统(“curl http://what-ever.com”);
setenv (“LD_LIBRARY_PATH”路径)

登录置评。

更多的答案(0)

类别

找到更多的在启动和关闭帮助中心文件交换

下载188bet金宝搏


释放

R2013b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的