【发布时间】:2013-09-18 20:30:33
【问题描述】:
我在使用SYSTEM函数从Matlab调用可执行文件时遇到了一个很奇怪的问题。
首先,我可以毫无问题地在窗口控制台中运行可执行文件。但是,当我在 Matlab 中调用 system(foo.exe) 时,它除了返回状态值 -1.0737e+09 之外什么都不做,并且不会抛出任何警告或错误。
我在 32 位 windows 系统上使用 Matlab R2009b,可执行文件依赖于 OpenCV2.40。
系统路径变量肯定包含所有必需的 lib 目录。我还尝试在 LD_LIBRARY_PATH 中添加相关路径,并将 dll 复制到工作目录中。这些尝试不会改变任何事情。
我还尝试从 Matlab 调用 SYSTEM('cmd'),并在调用的窗口控制台中运行可执行文件。它也没有给我任何回应。从Matlab调用的控制台的运行环境似乎与原来的窗口控制台不同。
在 Matlab 中的不同机器上运行相同的代码是成功的。
【问题讨论】:
-
您用于 windows 控制台和 matlab 函数调用的代码将对我们有所帮助。特别是最后一段对我来说是不可复制的。
-
在 matlab 外打开一个
cmd窗口并运行程序 - 如果可行,请在cmd窗口中键入set命令检查您的工作文件夹和所有系统环境变量。然后尝试使用system('cmd')在 Matlab 中打开cmd尝试再次运行该软件(如您所说 - 这应该会失败)。检查新cmd窗口中的运行文件夹和使用set的所有系统环境变量 - 比较它们,看看有什么问题。