2017-07-02 125 views
0

我有一個編譯後的C代碼到.exe中,並且可以通過雙擊在不同位置成功執行.exe。編譯.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

再次調用該.exe使用infile中和管後在SAS的錯誤味精附着以及(即,誤差2)enter image description here

+1

請張貼使用的SAS代碼和收到的錯誤。發佈後,這個問題不符合SO規則。 – Reeza

+0

請閱讀每個標籤的要求和相關性,並且不要將文字發佈爲圖片。 –

+0

...並且錯誤消息不會說「輸入文件無法找到」,而是「沒有文件打開」。 –

回答

1

對於SAS調試OS命令我總是傾向於使用infilepipe - 這種方式可以提取任何錯誤/調試消息,並將它們用於條件邏輯。

嘗試:

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。

+0

謝謝你的建議。我試圖在cmd中調用.exe,它工作正常,但在SAS中使用上面的管道和infile獲得了錯誤(請參閱原始文章)。 – Gfish