![](/img/trans.png)
[英]How do I set up code coverage in C++ googletest project in Visual Studio 2010
[英]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內部工作的解決方案:
c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC
。 將以下內容放在您的.vimrc中,以通過F8編譯當前文件
nnoremap <F8> :!vcvarsall.bat && cl /EHsc % <CR>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.