簡體   English   中英

如何設置Vim以使用Visual Studio 2010的C ++編譯器進行編譯?

[英]How do I set up Vim to compile using Visual Studio 2010's C++ compiler?

我可以通過運行vcvarsall.bat從命令行進行編譯,然后以我的源文件作為唯一參數運行cl.exe 問題在於,僅在不首先使用上述批處理文件設置環境的情況下運行cl.exe會由於“缺少庫”而導致錯誤。

我可以設想一些解決方法,例如在我的項目目錄中創建一個包含vcvarsall.bat並執行所有編譯的批處理文件。 在我看來,這似乎是一個非常麻煩且僵化的解決方案。 我非常希望能夠像在Unix中那樣編譯和運行Vim中的任何C或C ++文件:

:nnorebind <F5> :! g++ %<CR>

我不想添加vcvarsall.bat永久添加到環境中的那堆路徑。 我不知道如何用比這更好的方式表達我的問題:如何設置Vim使其能夠使用Visual Studio 2010 C ++編譯器?

您可以在Vim中更新環境變量。 例如,將“ c:\\ foo”添加到PATH的開頭:

let $PATH='c:\\foo;'.$PATH

我將vcvars * .bat文件的相關部分復制到了vimrc中:

if !exists("visual_studio_paths_added")
    let visual_studio_paths_added = 1
    let $PATH="C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\Tools;C:\\Windows\\Microsoft.NET\\Framework\\v3.5;C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\VCPackages;C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\bin;".$PATH
    let $INCLUDE="C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\INCLUDE;C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include;".$INCLUDE
    let $LIB="C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\ATLMFC\\LIB;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\LIB;C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\lib;".$LIB
    let $LIBPATH="C:\\Windows\\Microsoft.NET\\Framework\\v3.5;C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\ATLMFC\\LIB;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\LIB;".$LIBPATH
endif

根據您的Visual Studio版本和安裝目錄,根據需要進行調整。

就我而言,我將其放在一個函數中。 當我想使用Visual Studio時,我叫:vcvars 但是您可以只包含那些更改。

擴展DavidRodríguez-dribeas的評論,並查看vcvarsall.bat如何接受參數,我發現在源代碼樹中包含以下文件會有所幫助:

vc.bat

call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" amd64 & %*

適當調整MSVS版本和平台,或者根據需要將其設置為其他參數。 %VS...COMNTOOLS%環境變量由MSVC安裝程序設置,這使上面的操作與實際安裝路徑無關。

這使我可以通過以下方式在適當的MSVC環境中運行任何<command>

vc.bat <command>

如果不帶參數調用,它將僅設置當前shell的環境,而無需執行任何其他命令。

如果您想更進一步,可以使用CMake ,它是一個元構建系統,可讓您從單個(CMake語法)配置中生成Unix Makefile,MSVC解決方案和其他幾種構建文件類型。 Windows上支持的構建文件類型之一是NMake Makefiles ...和Windows上的nmake <target>處理能力與Unix上的make <target>差不多。

Mud的解決方案不適用於Visual Studio 2017社區。 路徑是不同的。 我認為DevSolar使用vcvarsall.bat的方法更可靠,因為它可以讓VS處理正確的路徑。

因為我不想隨我的vim配置一起攜帶.bat文件,所以我一直在尋找一種僅在.vimrc內部工作的解決方案:

  1. 將vcvarsall.bat添加到您的PATH。 在我的情況下c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC
  2. 將以下內容放在您的.vimrc中,以通過F8編譯當前文件

    nnoremap <F8> :!vcvarsall.bat && cl /EHsc % <CR>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM