我正在使用外部解算器来运行模拟。我试图从MATLAB脚本调用系统(cmd)的外部解算器。 cmd本身运行正常,终端没有问题(我在OSX上运行)。但是,每次运行MATLAB脚本时,状态为139 - Segmentation Fault。有谁知道为什么会发生这种情况?
答案 0 :(得分:1)
执行system
命令时,不与从终端运行程序相同,因为您可能在终端会话中定义了环境变量(通过~/.bashrc
或~/.bash_profile
)将影响程序的访问和运行方式。
如果您需要设置环境变量以使程序成功运行,请在调用setenv
之前在MATLAB中使用system
。
答案 1 :(得分:0)
我的Matlab(R2016b)遇到了同样的问题,但解决方案正好相反。
而不是缺少变量,system()
定义了LD_LIBRARY_PATH
,它重定向到一些与Matlab一起打包的共享库,这些库与我的程序不匹配。在我的脚本中清除LD_LIBRARY_PATH
后,一切正常。你可以这样做:
env -u LD_LIBRARY_PATH