首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言 Visual Studio 命令列編譯完整指南:cl.exe、環境變數、常用選項

     編輯:關於C

VS 構建工具鏈

  • cl.exe:編譯器 (C/C++)
  • link.exe:連結器
  • lib.exe:靜態庫管理
  • nmake.exe:Makefile 構建

路徑通常在 VC\bin (x86) 或 VC\bin\amd64 (x64)。

環境變數配置 (手動永久生效)

# 用戶環境變數
VS2019_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
WIN_SDK=C:\Program Files (x86)\Windows Kits\10

Path=%VS2019_DIR%\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64;%VS2019_DIR%\Common7\IDE;%Path%
INCLUDE=%VS2019_DIR%\VC\Tools\MSVC\14.29.30133\include;%WIN_SDK%\Include\10.0.19041.0\ucrt;%WIN_SDK%\Include\10.0.19041.0\shared;%WIN_SDK%\Include\10.0.19041.0\um;%WIN_SDK%\Include\10.0.19041.0\winrt;%WIN_SDK%\Include\10.0.19041.0\cppwinrt
LIB=%VS2019_DIR%\VC\Tools\MSVC\14.29.30133\lib\x64;%WIN_SDK%\Lib\10.0.19041.0\ucrt\x64;%WIN_SDK%\Lib\10.0.19041.0\um\x64

或直接使用 **"Developer Command Prompt for VS"** (已自動設定)。

命令列編譯測試

# HelloWorld.cpp
#include 
#include 
int main() {
    std::cout << "Hello World" << std::endl;
    printf("printf: Hello World");
    return 0;
}

# 編譯 (cl 自動調用 link)
cl HelloWorld.cpp
# 輸出 HelloWorld.exe

# 常用選項
cl /O2 /Wall /EHsc HelloWorld.cpp   # 優化、全警告、C++異常模型
cl /c HelloWorld.cpp                # 僅編譯生成 .obj
link HelloWorld.obj                 # 手動連結

cl.exe 常用優化選項

選項說明
/O1最小化代碼體積
/O2最大化執行速度 (預設 Release)
/Od關閉優化 (預設 Debug)
/Ob控制內聯展開
/Oi生成內部函數
/Wall啟用所有警告
/WX警告視為錯誤
/EHscC++ 同步異常處理模型
/MD /MT動態/靜態連結 CRT

說明

cl.exe 會自動呼叫 link.exe、lib.exe 完成連結,單指令即可生成 .exe。複雜專案建議使用 CMake + MSBuild 或 vcxproj。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved