2010-07-28 46 views
1

我在c#中有一個項目,它使用綁定來使用一些C++代碼。 C++代碼由多個使用makefile編譯的DLL組成。目前我正在嘗試使用調用nmake的預生成事件來運行makefile。然而,爲了得到它找到NMAKE我需要有一個線,它類似如下:有沒有更好的方式從c#項目運行C++ makefile?

"$(DevEnvDir)..\..\VC\vcvarsall.bat" 

另外,即使與目前線,NMAKE根本不會在輸出窗口產生任何輸出。它也沒有拋出任何錯誤。我嘗試將輸出重定向到一個文件,它不寫任何東西。我已經在普通shell中的預生成事件中複製了所有步驟,並且工作正常。我想我必須錯過一些東西。爲什麼Visual Studio不能爲我的預生成事件提供Visual Studio外殼?有沒有更好的方法來運行這個makefile?如果沒有,有沒有人有任何想法,爲什麼nmake不產生任何輸出?

編輯: D'哦! NMAKE未運行,因爲我忘了添加「打電話」到行的開始,即:

call "$(DevEnvDir)..\..\VC\vcvarsall.bat" 

回答

1

我經常訂做非VS-項目(有時與NMAKE,有時與其他的構建工具)的一部分的更大的解決方案構建。

我傾向於做一個簡單的批處理文件,其中規定了環境,然後運行該作。

我打電話從生成事件(在我的東西,往往生成後)的批處理文件 - 通常與前面一個CD:

cd ..\.. && armbuild 

從不(我能記得了,反正)有過任何問題輸出顯示在控制檯窗口中。爲響應

+0

謝謝,我真的只是想知道(希望)我失去了一些東西明顯,會有一個不錯的簡單的方法來做到這一點。我可能會嘗試一個C++ makefile項目,但如果失敗,我只會使用批處理文件。我希望能夠使用宏來保持整個事情的可移植性,但腳本中的所有路徑在我們所有的機器上都將幾乎相同。 – CalumMcCall 2010-07-28 10:08:13

+0

我知道你的意思,但希望如果你堅持相對路徑,它應該都保持便攜。不要忘記,要設置這些東西是件很痛苦的事,如果你做對了,你可以事後把它忘掉。 – 2010-07-28 10:48:04

相關問題