VS2019/VC++單文件編譯配置


由於VS不支持C/C++單文件編譯,只是學習或測試用的單個C/C++文件也要建個項目,實在是麻煩,所以一般都是選擇系統開始菜單VS自帶的開發人員命令提示符,手動輸入編譯命令,這樣就可以單文件編譯了,但是也還是麻煩。

每次需要先打開開發人員命令提示符,然后根據不同的文件路徑名輸入不同的編譯命令,忍了一段時間后,今天終於發現一個比較省心的辦法了。

先了解一下VS的命令行編譯選項:

VS 2019的開發人員命令提示符(使用32位x86本機工具來生成32位x86本機代碼的環境)
目標:%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
起始位置:"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\"
備注:Open Visual Studio 2019 Tools Command Prompt

x86 Native Tools Command Prompt for VS 2019(使用32位x86本機工具來生成32位x86本機代碼的環境)
目標:%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
備注:Open Visual Studio 2019 Tools Command Prompt for targeting x86

x64 Native Tools Command Prompt for VS 2019(使用64位x64本機工具來生成64位x64本機代碼的環境)
目標:%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
備注:Open Visual Studio 2019 Tools Command Prompt for targeting x64

x86_x64 Cross Tools Command Prompt for VS 2019(使用32位x86本機工具來生成64位x64本機代碼的環境)
目標:%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
備注:Open Visual Studio 2019 Tools Command Prompt for targeting x64 with x86-hosted tools

x64_x86 Cross Tools Command Prompt for VS 2019(使用64位x64本機工具來生成32位x86本機代碼的環境)
目標:%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
備注:Open Visual Studio 2019 Tools Command Prompt for targeting x86 with x64-hosted tools
===========================================================================================================================
Command File命令文件	Host and Target architectures主機和目標體系結構
------------------------------------------------------------------------
vcvars32.bat	使用32位x86本機工具來生成32位x86代碼。 
vcvars64.bat	使用64位x64本機工具來生成64位x64代碼。 
vcvarsx86_amd64.bat	使用32位x86本機跨工具生成64位x64代碼。 
vcvarsamd64_x86.bat	使用64位x64本機跨工具生成32位x86代碼。 
vcvarsx86_arm.bat	使用32位x86本機跨工具生成ARM代碼。 
vcvarsamd64_arm.bat	使用64位x64本機跨工具生成ARM代碼。 
vcvarsall.bat	使用參數來指定主機和目標體系結構,以及SDK和平台選擇。

VS附帶的批處理文件實在是夠復雜的,200行以上,真看不懂也不想看。我們只要使用就行了。VS的開發環境其實是通過執行一個批處理文件實現的,那么只要在我們的環境里先運行一下就好了。

下面是我配置的運行環境,也是一個批處理:

@echo off
rem 使用vc++編譯

if "%~1" =="" goto :CMD
set fn="%~dpn1"
set hz="%~x1"
if %hz%==".c" (goto C) else if %hz%==".cpp" (goto CPP) else (goto :EOF)

:C
REM 如果文件是*.c,cl編譯再運行(/TC將所有文件編譯為.c)
echo %1
%comspec% /c ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" && cl %1 -TC -Fe:%fn%.exe && %fn%.exe"
rem 必須在每個路徑周圍添加雙引號,並將整個命令括在雙引號中
del /q %fn%.obj
pause  &&  exit
goto :EOF

:CPP
REM 如果文件是*.cpp,cl編譯再運行(/TP將所有文件編譯為.cpp)
echo %1
%comspec% /c ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" && cl %1 -TP -EHsc -Fe:%fn%.exe && %fn%.exe"
del /q %fn%.obj
pause  &&  exit
goto :EOF

:CMD
    cmd

名字隨便起一個比如Build,后綴為bat。使用的方法為:直接拖動你要編譯的C/C++源文件到這個批處理文件上,就可以實現VC++編譯並運行了。

這樣還是有一點小麻煩,如果你使用的是編輯器,比如我用的是EditPlus,可以這樣配置:

設置完畢后,任何時候使用這個編輯器打開一個C/C++源文件,點擊上面設置好的按鈕就可以實現編譯並運行了。

如果你使用的是GCC,只要將上面批處理的編譯命令換一下就可以,如:

:C
REM 如果文件是*.c,gcc編譯再運行
echo %1
gcc %1 -o %fn%.exe  &&  %fn%.exe  &&  pause  &&  exit
goto :EOF

:CPP
REM 如果文件是*.cpp,g++編譯再運行
echo %1
g++ %1 -o %fn%.exe  &&  %fn%.exe  &&  pause  &&  exit
goto :EOF

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM