2011-04-06 82 views
6

我想設置Vim到用戶VS(快速)C編譯器cl.exe。添加如何在Windows 7上使用Visual Studio的編譯器使用Vim的'make'命令編譯C程序?

set makrprg='c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe' 

(我試着\\\\\\\\\只是要確定逃逸)我_vimrc文件並調用:make %返回如下:

:! myfile.c >C:\Users\gvkv\AppData\Local\Temp\VIe7BF5.tmp 2>&1 

和負載myfile.c爲VS的IDE !即使cl.exe需要的環境:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat 

這仍然是陌生的,我不知道如何着手。

+0

而不是轉義反斜槓,嘗試向另一個方向翻轉斜線(Windows可以處理這個)。另外,大多數Make程序都有調試選項;這些可以有助於追蹤問題。 – jdigital 2011-04-06 03:16:26

回答

3

我相信你的makeprg聲明的問題主要是由於路徑中的空間。 Cmd.exe需要空格周圍的雙引號。首先,使用逃脫路徑周圍雙引號(\「)。接下來逃避所有的反斜線(\)。最後,逃避所有空格(\)。

set makrprg=\"c:\\Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\ 10.0\\VC\\bin\\cl.exe\" 

或者,你可以設置你PATH適當地和剛剛成立makeprg直接cl.exe時

3

我創建了一個生成文件在那裏我有這樣的目標:

VCPROJ = /path/to/MyProject.vcproj 

all: 
    "c:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" /nocolor /r $(VCPROJ) Debug 

.PHONY: all 

我在vim的路徑有make所以沒有需要修改makeprg

這種方式VS編譯正常整個項目和vim解析錯誤。

5

法官Maygarden的解決方案是正確的高達正確的轉義,並解決了Vim的問題我有,但有一對夫婦的其他問題,我不得不下定決心,使事情的工作特別是

  1. cl.exe需要正確的環境以及正確的路徑;即加入C:\my\path\to\cl是不夠的。否則,您將收到關於丟失DLL的錯誤報告。解決方案是運行vcvars32.bat(或其他設置類似環境的批處理文件)和cl作爲單個命令。

  2. cmd需要用空格用雙引號的任何路徑,但你不能因爲\對待:! ...字面上\躲開他們。相反,您必須雙引號雙引號""...

因此,爲了完整性,我想我會張貼我的實際解決方案。在Vim中(或_vimrc):

:set makeprg=\"\"Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\ 10.0\\VC\\bin\\vcvars32.bat\"\&\&cl\" 

,然後你可以簡單地調用

:make % 

就大功告成了。

這種方法很容易推廣到任何編譯器。另外,正如devemouse的答案所建議的那樣,爲nmake創建一個makefile可能是針對任何非平凡大小的項目做事情的最佳方式(我想要一個適合我當前工作的Vim專用解決方案)。

相關問題