我在.exe中编译了一个c代码,并且可以通过双击在不同位置成功执行.exe。
我正在尝试使用SAS来执行.exe。有错误消息说无法找到输入文件,因此.exe无法正确执行。
我使用Visual Studio编译c代码。我猜它与编译代码的方式有关(比如所有源文件和头文件的默认目录,以及保存文件的输入)?
任何人都可以就调试和解决问题给我一些想法吗?
用于调用.exe的SAS代码粘贴在下面,错误消息也是如此。
x '"C:\Users\Gfish\Documents\Visual Studio 2010\Projects\M\Debug\M.exe"';
error image 非常感谢!!
Gfish
使用infile和pipe再次调用.exe后,SAS中的错误信息也被附加(即错误2)enter image description here
答案 0 :(得分:1)
为了在SAS中调试OS命令,我总是喜欢将infile
与pipe
一起使用 - 这样你就可以提取任何错误/调试消息并将它们用于条件逻辑。
尝试:
data _null_;
infile '"C:\Users\Gfish\Documents\Visual Studio 2010\Projects\M\Debug\M.exe" 2>&1' pipe;
input;
list;
run;
注意2>&1
- 这会将STDERR重定向到STDOUT(因此您可以在流中获取两者)。
另外 - 正如@Reeza所提到的 - 尝试在常规命令行上首先运行它。如果它没有在那里工作,它就无法在SAS工作。