我正在嘗試編譯一些C++源文件,其中包含MSVC2008來自Java代碼的編譯器。例如。我有一個路徑到源文件和ms編譯器的路徑。我需要運行編譯器並獲取可執行文件路徑或錯誤狀態。但是我得到的所有東西都是「不包含路徑定義」錯誤和退出狀態2
。從Java代碼運行MSVC編譯器給出錯誤
用谷歌搜索一下給了我文件路徑,它修復了從原始cmd
運行時出現此錯誤的路徑。但是,似乎Java有自己的環境,與運行ProcessBuilder
的進程時的操作系統完全不同。
到目前爲止,我得到這個代碼:
compilerPath = String.format("\"C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\bin\\cl.exe\" \"%s\"", sourcePath);
ProcessBuilder builder = new ProcessBuilder(compilerPath);
Process process = builder.start();
builder.redirectErrorStream(true);
process.waitFor();
這將返回exitValue == 2
及以上的任何時候我運行它提到的錯誤。
這是如何解決的,所以我可以運行cl.exe
並獲得我的可執行文件?
這似乎不適用於VS 10.0 – 2015-08-11 13:46:05
@Jordfräs肯定不會!至少,對於VS 10,路徑是完全不正確的。不知道編譯器命令本身,但我相信它保持不變。 – shybovycha 2015-08-11 21:32:39
我的意思是即使改變路徑。我認爲你必須運行vcvarsall.bat腳本(或者詳細檢查它設置的內容,我沒有時間)。 – 2015-08-12 05:07:11