MS CL & LINK的命令行用法

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
+++++++++++++++++++++++++++++++++++++++++++++++
MS CL 編譯器選項語法
Promote>cl -helpMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
                C/C++ COMPILER OPTIONS
                    -OPTIMIZATION-
/O1 minimize space                         /Op[-] improve floating-pt consistency/O2 maximize speed                         /Os favor code space/Oa assume no aliasing                       /Ot favor code speed/ Ob inline expansion (default n=0)     /Ow assume cross-function aliasing/Od disable optimizations (default)         /Ox maximum opts. (/Ogityb1 /Gs)/Og enable global optimization             /Oy[-] enable frame pointer omission/Oi enable intrinsic functions
                  -CODE GENERATION-
/G3 optimize for 80386                     /Gy separate functions for linker/G4 optimize for 80486                     /Ge force stack checking for all funcs/G5 optimize for Pentium                   /Gs[num] disable stack checking calls/G6 optimize for Pentium Pro               /Gh enable hook function call/GB optimize for blended model (default)   /GR[-] enable C++ RTTI/Gd __cdecl calling convention             /GX[-] enable C++ EH (same as /EHsc)/Gr __fastcall calling convention           /Gi[-] enable incremental compilation/Gz __stdcall calling convention             /Gm[-] enable minimal rebuild/GA optimize for Windows Application     /EHs enable synchronous C++ EH/GD optimize for Windows DLL           /EHa enable asynchronous C++ EH/Gf enable string pooling                     /EHc extern "C" defaults to nothrow/GF enable read-only string pooling         /QIfdiv[-] enable Pentium FDIV fix/GZ enable runtime debug checks           /QI0f[-] enable Pentium 0x0f fix
                    -OUTPUT FILES-
/Fa[file] name assembly listing file         /Fo name object file/FA[sc] configure assembly listing         /Fp name precompiled header file/Fd[file] name .PDB file                   /Fr[file] name source browser file/Fe name executable file             /FR[file] name extended .SBR file(press to continue)/Fm[file] name map file
                    -PREPROCESSOR-
/C don't strip comments                     /FI name forced include file/D{=|#} define macro       /U remove predefined macro/E preprocess to stdout                     /u remove all predefined macros/EP preprocess to stdout, no #line         /I

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章