懵懵燈燈的BLOG

          寒夜孤燈點點星

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            56 隨筆 :: 10 文章 :: 22 評論 :: 0 Trackbacks

          From: http://hi.baidu.com/hinus/blog/item/bd154081801101dbbc3e1eac.html

          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

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

          利用vc 6.0目錄下的cl.exe直接編譯程序的方法

          1.在“我的電腦--屬性--高級--環境變量”中, 添加如下變量:

          INCLUDE
          D:\Program Files\Microsoft Visual Studio\VC98\Include

          LIB
          D:\Program Files\Microsoft Visual Studio\VC98\Lib

          PATH
          X:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;X:\Program Files\Microsoft Visual Studio\VC98\Bin
          X表示安裝盤符,注意這里是兩個路徑,因為cl.exe要用到MSDev98\Bin目錄下的MSPDB60.DLL。

          如果已經存在這些變量,則把以上值分別加在對應的變量值的后面,注意在添加前用分號隔開。

          2.重啟電腦

          3.打開命令提示符,輸入:
          cl hello.c
          回車后就會在目錄下生成hello.exe和hello.obj。

          posted on 2008-03-12 12:29 懵懵燈燈 閱讀(1301) 評論(0)  編輯  收藏 所屬分類: MFC
          主站蜘蛛池模板: 文成县| 米易县| 乐都县| 五峰| 小金县| 黄浦区| 平江县| 关岭| 绥芬河市| 神农架林区| 玉环县| 永州市| 齐河县| 杨浦区| 阳泉市| 佛学| 乐东| 都匀市| 罗山县| 武邑县| 荃湾区| 鄱阳县| 清流县| 昌平区| 衡阳市| 新营市| 顺昌县| 平昌县| 饶阳县| 亳州市| 勐海县| 英超| 哈尔滨市| 十堰市| 习水县| 绥阳县| 叙永县| 华容县| 开封市| 高邮市| 普陀区|