深入探究VC ―― 編譯器cl.exe(1)
cl.exe的功能是將源代碼文件編譯為可提供鏈接器使用的obj對象文件。cl.exe命令行參數形式如下:
CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]
各命令行參數的意義如下 :
1、option
命令行中的"option"是指一個或多個編譯選項。在指定選項時,需要在選項前加正斜杠(/)或一個短劃線(-)。有一些選項還會帶有參數,使用":"來指定選項的參數。比如"/sybsystem:windows,5.0"是一個編譯選項,表示可執行程序執行所依賴的子系統是Windows(Win32圖形用戶界面的應用程序),版本最低5.0(即Windows 2000)。選項名區分大小寫(/HELP選項除外),而且除了/link選項之外,其他選項是順序沒有要求。在編譯時所指定的所有選項都將應用于用戶指定的所有源文件。option命令行參數是可選。
2、file
命令行中的"file"是一個或多個所需要編譯的源文件,也可以是.obj文件或庫文件。cl.exe編譯源文件并將.obj文件和庫的名稱傳遞給編譯器。file參數是編譯器的必須參數。
3、lib
該選項用于指定一個或多個庫名。cl.exe直接將這些名稱傳遞給鏈接器。lib是cl.exe的可選參數。
4、command-file
它包含多個選項和文件名的文件,為可選參數。
5、link-opt
一個或多個鏈接器選項。CL將這些選項傳遞給鏈接器,也是可選參數。
舉例Hello World:
// File Name: Hello.c
// Description: First Win32 Application
// by Koma 2009-11-18 22:05
#include <windows.h>
#pragma comment(lib,"user32.lib")
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pszCmdLine, int cmdShow)
{
MessageBox(NULL,"Hello World !","Test",MB_OK);
return 0;
}
那么編譯該源文件命令行下:
cl /O2 /Fa /Gz /Fo Hello.c
"Hello.c"前面的都是編譯選項(即option參數),"Hello.c"是源文件(file參數),沒有使用lib、command-file、link-opt等命令行參數。
在命令行編譯前,需要設置你的環境變量,如下所示:
include C:/Program Files/Microsoft Visual Studio/VC98/Include
lib C:/Program Files/Microsoft Visual Studio/VC98/Lib
path C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin;C:/Program Files/Microsoft Visual Studio/VC98/Bin
(如果被修改過的并不是默認如此,設置完成需要重啟電腦)
好了,關于編譯器命令行參數暫時就學習到這了~~~
本文來自CSDN博客,轉載請標明出處:http://www.cnblogs.com/lidabo/admin/file:///C:/Documents%20and%20Settings/Administrator/桌面/MFC-20100806文章/MFC-20100806文章/深入探究VC%20——%20編譯器cl_exe(1)%20-%20zxzqwq2009的專欄%20-%20CSDN博客.htm