VS構建工具介紹

weixin_34120274發表於2016-09-04

VS構建工具介紹

我們都知道C/C++原始碼要生成可執行的.exe程式,需要經過編譯、連結的過程。你在VS工具中只需要選擇選單Build或按一下F5可以編譯、連結、執行了,其實IDE幫我隱藏了好多的具體細節。

我先假設VS2010安裝在以下目錄中:

C:\Program Files (x86)\Microsoft Visual Studio 10.0

開啟安裝目錄下的VSDIR\VC\bin可以看到一系列的可執行程式.exe和批處理檔案,這些就是VS2010構建、編譯、連結時要用到的工具。看一下幾個主要的工具: 
cl.exe:編譯程式 
link.exe:連結程式 
lib.exe:載入lib庫的程式 
nmake.exe:用makefile進行構建、編譯的工具



命令列編譯程式

要在命令列(而不是VS)中編譯程式,先要配製環境變數。網上有些教程說執行VSDIR\VC\bin\vcvars32.bat的批處理就可以了,但我執行這個批處理時會報錯:

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

這又是另外一個問題,我就不管了,直接手動配製環境變數把: 
右鍵我的計算機->屬性->高階系統設定->高階->環境變數,配製的環境變數(建議配製在使用者的環境變數中)的值如下: 
VS2010_DIR: 
C:\Program Files (x86)\Microsoft Visual Studio 10.0 
WIN_SDK: 
C:\Program Files (x86)\Microsoft SDKs 
path: 
C:\Users\Administrator.dnx\bin;%VS2010_DIR%\VC\bin;%VS2010_DIR%\Common7\IDE 
include: 
%VS2010_DIR%\VC\include;%WIN_SDK%Windows\v7.0A\Include; 
lib: 
%VS2010_DIR%\VC\lib;%WIN_SDK%\Windows\v7.0A\Lib;


測試

D:\CppWorkspace\CommandTest\HelloWorld.cpp:

#include <iostream>
#include <stdio.h>

int main()
{
    std::cout << "This is a native C++ program." << std::endl;
    printf("printf: Hello World");
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

編譯結果: 

命令列中編譯C/C++程式 
命令列中編譯C/C++程式

 

HelloWorld.obj就是編譯出的二進位制檔案,HelloWorld.exe就是連結成的可執行檔案。


說明

在以上的編譯過程中我們只用了cl的編譯命令就幫我們最終的可執行檔案HelloWorld.exe,這是因為cl.exe程式在編譯時自己會去呼叫link.exe、lib.exe等程式。

可通過”cl -help “檢視常用的編譯選項

選項作用
/O1 建立小程式碼
/O2 建立快速程式碼
/Oa 假設沒有別名
/Ob 控制內聯展開
/Od 禁用優化
/Og 使用全域性優化
/Oi 生成內部函式

更詳細的中文介紹也可參考這篇博文: 
http://www.lellansin.com/%E5%BE%AE%E8%BD%AF-cl-exe-%E7%BC%96%E8%AF%91%E5%99%A8.html

相關文章