VS2019/VC++單檔案編譯配置
阿新 • • 發佈:2020-12-19
由於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