CL編譯器和LINK編譯器的使用方法

來源:互聯網
上載者:User

 

CL.exe 是控制 Microsoft C 和 C++ 編譯器與連結器的 32 位工具。編譯器產生通用物件檔案格式 (COFF)

對象 (.obj) 檔案。連結器產生可執行檔 (.exe) 或動態連結程式庫檔案 (DLL)。

注意,所有編譯器選項都區分大小寫。

用法如下:

CL [option...] file... [option | file]... [lib...] [@command-file]
[/link link-opt...]

option : 一個或多個 CL 選項。請注意,所有選項都應用於所有指定的源檔案。選項是由一個

正斜杠 (/) 或一個短劃線 (-) 指定的。如果某個選項帶有參數,則該選項的說明指

定在選項和參數之間是否允許有空格。選項名(/HELP 選項除外)區分大小寫。有關

更多資訊,請參見 CL 選項的順序。

/c : 編譯但不連結

/Zs : 檢查文法

/? : 列出編譯器選項

/arch : 使用 SSE 或 SSE2 指令產生代碼

/arch:SSE2

/clr : 啟用 C++ 的託管擴充併產生在公用語言運行庫上啟動並執行輸出檔案

/F : 設定堆棧大小 | 此選項設定程式堆棧大小(以位元組為單位)。

如果不使用此選項,堆棧大小預設為 1 MB

/F 100

/Fe : 重新命名可執行檔

/Feexe.exe

/G7 :針對 Pentium 4 或 Athlon 最佳化代碼。

/GA :最佳化 Windows 應用程式的代碼

/GL :啟用全程式最佳化

/Gm :啟用最小重建

/HELP :列出編譯器選項

/I :在目錄中搜尋包含檔案 | 指定源檔案目錄 include

/I"e:\VC\include"

/link : 將指定的選項傳遞給 LINK

/MD : 使用 MSVCRT.lib 建立多線程 DLL

/ML : 使用 LIBC.lib 建立單線程可執行檔

/MT : 使用 LIBCMT.lib 建立多線程可執行檔

/O1 : 建立小代碼

/O2 : 建立快速代碼

/Os : 代碼大小優先

/W : 設定警告層級

/W3

------------------------------

/Ot : 代碼速度優先

/LD : 建立動態連結程式庫

/Ox : 使用最大最佳化

/Zs : 只檢查文法

------------------------------

/TC : 指定 C 源檔案

/TP : 指定 C++ 源檔案

-----------------------------------------------------------------------------------------

file : 一個或多個源檔案、.obj 檔案或庫的名稱。CL 編譯源檔案並將 .obj 檔案和庫的名

稱傳遞給連結器。有關更多資訊,請參見 CL 檔案名稱文法。

lib : 一個或多個庫名。CL 將這些名稱傳遞給連結器。

command-file: 包含多個選項和檔案名稱的檔案。有關更多資訊,請參見 CL 命令檔案。

link-opt : 一個或多個連結器選項。CL 將這些選項傳遞給連結器

---------------------------------------------------------------------------------------------

精典用法:

cl *.cpp /G7 /MD /Ox /Ot /W3 /c /EHsc /I"G:\Visual C++\VC98\PlatformSDK\Include"

---------------------------------------------------------------------------------------------

LINK 是將通用物件檔案格式 (COFF) 對象檔案和庫連結起來以建立 32 位可執行 (.exe) 檔案或動態連結

庫 (DLL) 的 32 位工具。

LINK 用法如下:

/ALIGN 指定每一節的對齊

/ALIGN 選項指定程式線性地址空間中每一節的對齊。number 參數以位元組為單位,並且必須是2 的冪。預設值是 4K (4096)。如果對齊產生

無效的映像,則連結器發出警告。除非正

在編寫諸如裝置驅動程式的應用程式,否則應不需要修改對齊。

/DLL 產生 DLL

/DRIVER 建立 Windows NT 核心模式驅動程式

/EXETYPE 產生虛擬設備驅動程式

/EXETYPE:DYNAMIC 建立動態載入的虛擬設備驅動程式。

/EXETYPE:DEV386 建立靜態載入的虛擬設備驅動程式。這是 /EXETYPE 的預設值

/INCREMENTAL 控制增量連結

/LARGEADDRESSAWARE 通知編譯器應用程式支援大於 2 GB 的地址

/LIBPATH 允許使用者重寫環境庫路徑

/LIBPATH:"e:\VC\LIB" /LIBPATH:"e:\DX\LIB"

/MACHINE 指定目標平台

` /MACHINE:{AM33|ARM|EBC|IA64|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|

MIPSR41XX|SH3|SH3DSP|SH4|SH5|THUMB|X86| X64/*8.0版本*/}

/MACHINE:X86

/NOENTRY 建立純資源 DLL

建立純資源 DLL 時要求 /NOENTRY 選項。

/OPT 控制 LINK 最佳化

如果產生僅運行於 Windows NT 或 Windows 2000 上的組件,則應使用 /OPT:NOWIN98。

/SUBSYSTEM: 指定子系統

{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|

EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|

WINDOWSCE}[,#[.##]]

/OUT 指定輸出檔案名

/OUT:Hello.exe

精典用法:

link *.obj rc.res /LIBPATH:"G:\Visual C++\lib" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.Lib

rc 是資源編譯

/l 列出資源用的地區性

0x804 中國

0x409 美國

用法:

rc /l 0x804 file.rc

---------------------------------------------------------------------------------------------

MFC 開發如下:

編譯原始碼:

cl *.cpp /Ox /Ot /G7 /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /EHsc /MD /arch:SSE2 /W3 /c

資源編譯 :

rc /l 0x804 winmfc.rc

連結 :

link *.obj WinMFC.res /out:WinMFC.exe /OPT:NOWIN98 /SUBSYSTEM:WINDOWS /MACHINE:X86

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.