2010-09-18 80 views
1

我一直在這一整個上午工作,我仍然無法找到一種方法來輕鬆綁定一個密鑰,使用Cygwin GCC從Windows版本的gVim編譯我的程序,然後運行它。我對Bash腳本編程有點新手,並且我一直無法在主目錄(C:/ cygwin/home)中創建.exe文件,然後運行它。如何使用Cygwin的GCC從Windows上的gVim進行編譯,然後運行該程序?

我有什麼至今:

map <F4> :call CompileRunGcc()<CR> 
func! CompileRunGcc() 
    exec "w" 
    exec "!gcc /home/%:t && cd C:/cygwin/home && ./a.exe" 
endfun 

這樣的工作都很好,只是當我去到主目錄中,a.exe的是不存在的。使用cygwin中的bash腳本.bat中的gcc編譯工作正常......但不是來自gVim。

感謝您提前提供所有幫助。

回答

2

檢查這個plugin

它似乎是你想要的。 雖然我還沒有測試過。

+0

它不再被維護。從那以後,我選擇了另一種解決方案,允許使用任何cygwinish程序(gcc,doxygen,latex等)進行編譯,並將生成的路徑名轉換爲vim32-(g)vim將理解的內容 - > http:// code.google.com/p/lh-vim/source/browse/#svn/BTW/trunk – 2010-09-20 12:19:36

+0

是的,我試過這個插件,它沒有工作。我不知道錯誤是什麼,所以我放棄了這個方法。 – 2010-09-22 21:23:50

0

基本上,當gcc運行時,它會在工作目錄中產生二進制右鍵。如果要將輸出二進制文件放在其他目錄中,則必須通過-o選項。所以命令應該是以下任一種:

exec "!gcc -o C:/cygwin/home/a.exe /home/%:t && cd C:/cygwin/home && ./a.exe" 
exec "!cd C:/cygwin/home && gcc /home/%:t && ./a.exe" 
1

對於單文件項目,您不需要任何makefile。因此,只要gcc和make在你的$ PATH,你是在當前源文件所來自的目錄,你「只」需要鍵入:

:update 
:make 

如果你的程序有沒有錯誤,一個簡單的!./%<會做。 否則,您可能必須執行:copen才能看到編譯錯誤。如果你有,你會注意到一些* nix格式的路徑名。不幸的是(g)vim-win32無法理解它們。那是我的舊cygwin編譯器插件skeept告訴你的地方。爲了支持任何編譯類程序(而不僅僅是make),它演變爲BuildToolsWrapper - 它的安裝需要lh-vim-lib,並且可能是我的一些其他插件(system_tools,searchinruntime)。

有了它,只需做一次:BTW add cygwin,然後再玩:make,甚至是BTW定義的:Make。在用自動確定的目標調用:make之前,該新命令將執行:update!。注意:BTW地圖Make和當前項目可執行文件的執行時間爲<F7><C-F5>。 PS:如果您的項目中有多個文件,請定義一個Makefile,然後使用:make即可。 PPS:您也可能對cyg-wrapper.sh感興趣,它有助於從cygwin shell正確打開gvim-win32。

相關問題