cl命令編譯

2021-07-05 09:36:44 字數 4403 閱讀 1320

cl.exe test.cpp /ehsc /i」c:/opencv2.0/include/opencv/」 cv200.lib highgui200.lib cxcore200.lib /link /libpath:」c:/opencv2.0/vs2008/lib」

/libpath小寫也可以/libpath

網上找到的「經典用法」

cl *.cpp /g7 /md /ox /ot /w3 /c /ehsc /i」g:/visual c++/vc98/platformsdk/include」

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

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

cl [option…] file… [option | file]… [lib…] [@command-file] [/link link-opt…]

下表說明cl 命令的輸入項意義

option 乙個或多個 cl 選項。請注意,所有選項都應用於所有指定的原始檔。選項是由乙個正斜槓 (/) 或乙個短劃線 (–) 指定的。如果某個選項帶有引數,則該選項的說明指定在選項和引數之間是否允許有空格。選項名(/help 選項除外)區分大小寫。有關更多資訊,請參閱 cl 選項的順序。

lib 乙個或多個庫名。cl 將這些名稱傳遞給鏈結器。

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

link-opt 乙個或多個鏈結器選項。cl 將這些選項傳遞給鏈結器。

您可以指定任意數目的選項、檔名和庫名,條件是命令列上的字元數不超過 1024,該限制是作業系統指定的。

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

若要編譯但不鏈結,請使用 /c。

使用 nmake 生成輸出檔案。

使用 bscmake 支援類瀏覽。

選項 作用

/o1 建立小**

/o2 建立快速**

/oa 假設沒有別名

/ob 控制內聯展開

/od 禁用優化

/og 使用全域性優化

/oi 生成內部函式

/op 改善浮點數一致性

/os **大小優先

/ot **速度優先

/ow 假定在函式呼叫中使用別名

/ox 使用最大優化 (/ob1gity /gs)

/oy 省略框架指標

選項 作用

/clr 啟用c++ 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案

/eh 指定異常處理模型

/g3 優化**以優選386處理器。在visual c++ 5.0中已經停用,編譯器將忽略此選項

/g4 優化**以優選486處理器。在visual c++ 5.0中已經停用,編譯器將忽略此選項

/g5 優化**以優選pentium

/gb 與/g6等效;將 _m_ix86的值設定為600

/gd 使用__cdecl 呼叫約定

/ge 啟用堆疊探測

/gf

/gf 啟用字串池

/gh 呼叫掛鉤函式_penter

/gh 呼叫掛鉤函式_pexit

/gl 啟用全程式優化

/gm 啟用最小重新生成

/gr 啟用執行時型別資訊(rtti)

/gr 使用 __fastcall 呼叫約定

/gs 控制堆疊探測

/gt 支援使用靜態執行緒本地儲存區分配的資料的纖程安全

/gx 啟用同步異常處理

/gy 啟用函式級鏈結

/gz 使用 __stdcall 呼叫約定

/md 使用 msvcrt.lib 建立多執行緒 dll

/mdd 使用 msvcrtd.lib 建立除錯多執行緒 dll

/ml 使用 libc.lib 建立單執行緒可執行檔案

/mld 使用 libcd.lib 建立除錯單執行緒可執行檔案

/mt 使用 libcmt.lib 建立多執行緒可執行檔案

/mtd 使用 libcmtd.lib 建立除錯多執行緒可執行檔案

選項 作用

/fa 建立列表檔案

/fa 設定列表檔名

/fd 重新命名程式資料庫檔案

/fe 重新命名可執行檔案

/fm 建立對映檔案

/fo 建立物件檔案

/fp 指定預編譯頭檔名

/fr

/fr 生成瀏覽器檔案

/fx 將插入的**與原始檔合併

選項 作用

/gs 緩衝區安全檢查

/gz 與 /rtc1 相同

/rtc 啟用執行時錯誤檢查

/wp64 檢測 64 位可移植性問題

/yd 將完整的除錯資訊放在所有物件檔案中

/yl 建立除錯庫時插入 pch 引用

/z7 生成與 c 7.0 相容的除錯資訊

/zd 生成行號

/zi 生成完整的除錯資訊

選項 作用

/nobool 取消 c++ bool、true 和 false 關鍵字

/vd 取消或啟用隱藏的 vtordisp 類成員

/vmb 對指向成員的指標使用最佳的基

/vmg 對指向成員的指標使用完全一般性

/vmm 宣告多重繼承

/vms 宣告單一繼承

/vmv 宣告虛擬繼承

/za 禁用語言擴充套件

/zc 在 /ze 下指定標準行為

/ze 啟用語言擴充套件

/zg 生成函式原型

/zl 從 .obj 檔案中移除預設庫名

/zpn 封裝結構成員

/zs 只檢查語法

七、鏈結

選項 作用

/f 設定堆疊大小

/ld 建立動態鏈結庫

/ldd 建立除錯動態鏈結庫

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

/md 使用 msvcrt.lib 編譯以建立多執行緒 dll

/mdd 使用 msvcrtd.lib 編譯以建立除錯多執行緒 dll

/ml 使用 libc.lib 編譯以建立單執行緒可執行檔案

/mld 使用 libcd.lib 編譯以建立除錯單執行緒可執行檔案

/mt 使用 libcmt.lib 編譯以建立多執行緒可執行檔案

/mtd 使用 libcmtd.lib 編譯以建立除錯多執行緒可執行檔案

八、預編譯頭

選項 作用

/y- 忽略當前生成中的所有其他預編譯頭編譯器選項

/yc 建立預編譯標頭檔案

/yd 將完整的除錯資訊放在所有物件檔案中

/yu 在生成期間使用預編譯標頭檔案

/yx 自動處理預編譯頭

九、雜項

選項 作用

@ 指定響應檔案

/? 列出編譯器選項

/c 編譯但不鏈結

/h 限制外部(公共)名稱的長度

/help 列出編譯器選項

/j 更改預設的 char 型別

/nologo 取消顯示登入版權標誌

/qi0f 確保 pentium 0f 指令沒有問題

/qifdiv fdiv、fprem、fptan 和 fpatan 指令有缺陷的 intel pentium 微處理器的變通方法

/qifist 當需要從浮點型別轉換為整型時取消 helper 函式 _ftol 的呼叫

/showincludes 在編譯期間顯示所有包含檔案的列表

/tc

/tc 指定 c 原始檔

/tp

/tp 指定 c++ 原始檔

/v 設定版本字串

/w 設定警告等級

/w 禁用所有警告

/wall 啟用所有警告,包括預設情況下禁用的警告

/wl 在從命令列編譯 c++ 源**時啟用錯誤資訊和警告訊息的單行診斷

/zm 設定編譯器的記憶體分配限制

cl命令列編譯Cpp

假設你的電腦安裝了vs2010 其它版本也可以 1.修改環境變數 d program files microsoft visual studio 10.0 vc bin 以及mspdb60.dll的路徑 d program files microsoft visual studio 10.0 com...

C基礎網路程式設計 能用CL編譯

server.c include include include include include pragma comment lib,ws2 32.lib void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 sockcl...

cl 編譯器環境配置問題

cl 編譯器是microsoft 推出的應用於wins 平台上的c c 編譯器 類似於linux系統上的gcc,g 等。實時上vs2015整合開發環境就是呼叫cl.exe來進行原始碼編譯的,所以可以直接在shell中執行 cl option.filename.link linkoption.編譯 我...