深入探究VC —— 編譯器cl.exe
?cl.exe的功能是將源代碼文件編譯為可提供鏈接器使用的obj對(duì)象文件。cl.exe命令行參數(shù)形式如下:
CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]
?
各命令行參數(shù)的意義如下 :
1、option
命令行中的"option"是指一個(gè)或多個(gè)編譯選項(xiàng)。在指定選項(xiàng)時(shí),需要在選項(xiàng)前加正斜杠(/)或一個(gè)短劃線(-)。有一些選項(xiàng)還會(huì)帶有參數(shù),使用":"來(lái)指定選項(xiàng)的參數(shù)。比如"/sybsystem:windows,5.0"是一個(gè)編譯選項(xiàng),表示可執(zhí)行程序執(zhí)行所依賴(lài)的子系統(tǒng)是Windows(Win32圖形用戶(hù)界面的應(yīng)用程序),版本最低5.0(即Windows 2000)。選項(xiàng)名區(qū)分大小寫(xiě)(/HELP選項(xiàng)除外),而且除了/link選項(xiàng)之外,其他選項(xiàng)是順序沒(méi)有要求。在編譯時(shí)所指定的所有選項(xiàng)都將應(yīng)用于用戶(hù)指定的所有源文件。option命令行參數(shù)是可選。
?
2、file
命令行中的"file"是一個(gè)或多個(gè)所需要編譯的源文件,也可以是.obj文件或庫(kù)文件。cl.exe編譯源文件并將.obj文件和庫(kù)的名稱(chēng)傳遞給編譯器。file參數(shù)是編譯器的必須參數(shù)。
?
3、lib
該選項(xiàng)用于指定一個(gè)或多個(gè)庫(kù)名。cl.exe直接將這些名稱(chēng)傳遞給鏈接器。lib是cl.exe的可選參數(shù)。
?
4、command-file
它包含多個(gè)選項(xiàng)和文件名的文件,為可選參數(shù)。
?
5、link-opt
一個(gè)或多個(gè)鏈接器選項(xiàng)。CL將這些選項(xiàng)傳遞給鏈接器,也是可選參數(shù)。
?
舉例Hello World:
[cpp] view plain copy print? //?File???Name:?Hello.c??//?Description:?First?Win32?Application??//?by?Koma?2009-11-18?22:05????#include?