命令行編譯vc工程
㈠ 用記事本怎麼編輯、運行c語言
最簡單的方式就是安裝GCC編譯器,在記事本編寫C語言程序,然後再在命令行用GCC編譯運行,下面我簡單介紹一下實現過程,感興趣的朋友可以嘗試一下:
01
安裝GCC編譯器
這里推薦直接安裝MinGW,一個集成編譯調試工具,集成了常見的GCC、G++、GDB等命令,可以輕松編譯運行C語言程序,下載的話,直接到官網上下載即可,一個exe文件,直接雙擊安裝就行,安裝後主目錄如下,這里需要將bin目錄添加到環境變數中,後面在cmd窗口就可以直接使用GCC命令編譯C語言程序:
打開cmd窗口,輸入「gcc-v」命令,如果輸出以下信息,則說明GCC命令配置成功:
02
編譯運行程序
GCC命令配置完成後,接著就是編譯運行C語言程序了,這里為了方便演示,我用記事本新建了一個C文件,測試代碼如下,非常簡單,後面就是用GCC編譯運行這個程序:
接著在cmd窗口切換到文件所在目錄,運行命令「gcc-otesttest.c」就可直接編譯程序,成功編譯後會在當前目錄下生成一個exe程序,可以直接運行:
至此,我們就完成了記事本C語言程序的編譯和運行。總的來說,整個過程非常簡單,主要就是配置GCC編譯器(和Linux非常相似),只要你熟悉一下操作過程,很快就能掌握的,當然,你也可以使用現成的IDE環境,像VS等也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
具體步驟如下:
1、首先要配置環境變數,在系統變數(用戶變數均可)path中添加MSDevBin和VC98Bin路徑。是你所安裝vc6.0的bin目錄。以及設置環境變數include為...VC98Include。是你所安裝vc6.0的路徑的include目錄。不理解的話自己可以網路一下。學過java的話一般都配置過環境變數。
2、然後再在桌面上,新建記事本重命名為hello.c
3、打開記事本輸入如下代碼,保存並關閉。
#includestdio.h>
intmain(){
printf("helloworld!");
return0;
}
4、打開命令行界面,用cd指令定位到桌面,如下圖所示。你的可能輸入的命令不一樣。此時,輸入dir可以看到你桌面的說有文件和目錄。就可以看到你剛剛新建的hello.c了
5、輸入:clhello.c。可以看到桌面上多了hello.obj和hello.exe。
6、最後運行生成的hello.exe,輸出helloworld!成功!
㈡ VC++命令行操作
cl.exe所在的文件夾裡面有一個批處理叫做
VSVAR32.BAT
首先運行它一次,你就可以用cl.exe來編譯你的代碼了。
CL.exe 是控制 Microsoft C 和 C++ 編譯器與鏈接器的 32 位工具。編譯器產生通用對象文件格式 (COFF) 對象 (.obj) 文件。鏈接器產生可執行文件 (.exe) 或動態鏈接庫文件 (DLL)。
注意,所有編譯器選項都區分大小寫。
若要編譯但不鏈接,請使用 /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 生成完整的調試信息
預處理器
選項 作用
/AI 指定在解析傳遞到#using 指令的文件引用時搜索的目錄
/c 在預處理期間保留注釋
/D 定義常數和宏
/E 將預處理器輸出復制到標准輸出
/EP 將預處理器輸出復制到標准輸出
/Fl 預處理指定的包含文件
/FU 強制使用文件名,就像它已被傳遞到#using 指令一樣
/I 在目錄中搜索包含文件
/P 將預處理器輸出寫入文件
/U 移除預定義宏
/U 移除所有的預定義宏
/X 忽略標准包含目錄
/ZI 將調試信息包含在與「編輯並繼續」兼容的程序資料庫中
語言
選項 作用
/noBool 取消 C++ bool、true 和 false 關鍵字
/vd 取消或啟用隱藏的 vtordisp 類成員
/vmb 對指向成員的指針使用最佳的基
/vmg 對指向成員的指針使用完全一般性
/vmm 聲明多重繼承
/vms 聲明單一繼承
/vmv 聲明虛擬繼承
/Za 禁用語言擴展
/Zc 在 /Ze 下指定標准行為
/Ze 啟用語言擴展
/Zg 生成函數原型
/Zl 從 .obj 文件中移除默認庫名
/Zp n 封裝結構成員
/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 命令行使用下列語法:
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
下表說明CL 命令的輸入項意義
option 一個或多個 CL 選項。請注意,所有選項都應用於所有指定的源文件。選項是由一個正斜杠 (/) 或一個短劃線 (–) 指定的。如果某個選項帶有參數,則該選項的說明指定在選項和參數之間是否允許有空格。選項名(/HELP 選項除外)區分大小寫。有關更多信息,請參閱 CL 選項的順序。
file 一個或多個源文件、.obj 文件或庫的名稱。CL 編譯源文件並將 .obj 文件和庫的名稱傳遞給鏈接器。有關更多信息,請參閱 CL 文件名語法。
lib 一個或多個庫名。CL 將這些名稱傳遞給鏈接器。
command-file 包含多個選項和文件名的文件。有關更多信息,請參閱 CL 命令文件。
link-opt 一個或多個鏈接器選項。CL 將這些選項傳遞給鏈接器。
您可以指定任意數目的選項、文件名和庫名,條件是命令行上的字元數不超過 1024,該限制是操作系統指定的。
CL 命令文件請參見
設置編譯器選項 | 編譯器選項
命令文件是一個文本文件,它包含您另外在命令行上鍵入或使用 CL 環境變數指定的選項和文件名。CL 接受在 CL 環境變數中或命令行上用作參數的編譯器命令文件。與命令行或 CL 環境變數不同,命令文件允許使用多行選項和文件名。
命令文件中的選項和文件名將根據 CL 環境變數中或命令行上的命令文件名的位置被進行處理。但是,如果 /link 選項出現在命令文件中,則該行其餘部分的所有選項將被傳遞給鏈接器。命令文件的後面幾行中的選項和命令行上命令文件調用之後的選項仍被作為編譯器選項接受。
命令文件一定不能包含 CL 命令。每個選項必須在同一行上開始和結束;不能使用反斜杠 (\) 跨行組合一個選項。
命令文件用一個 @ 符後接一個文件名指定;該文件名可指定絕對路徑或相對路徑。
㈢ 在VC里如何用Makefile文件編譯
在Visual C++中編譯使用Makefile文件,首先打開命令提示符(cmd.exe)或在Windows 9x中使用command.com,然後進入Visual C++的bin目錄,運行vc-vars32.bat設置環境變數。之後進入Makefile所在的目錄,並使用nmake /f makefile進行編譯。從sourceforge下載的libjpeg源代碼包含了一個makefile.vc文件,通過nmake /f makefile.vc [nodebug=1]可以編譯靜態庫,但若需編譯成dll,以便在如emacs等程序中使用,則需對makefile.vc和jmorecfg.h文件進行修改。
在makefile.vc文件中,需添加編譯dll的規則如下所示:
libjpeg.lib: $(LIBOBJECTS)
$(RM) libjpeg.lib
lib -out:libjpeg.lib $(LIBOBJECTS)
添加以下行:
libjpeg.dll: $(LIBOBJECTS)
$(RM) libjpeg.dll
link -dll -out:libjpeg.dll $(LIBOBJECTS)
在jmorecfg.h中添加:
#define _WIN32_
#define JPEG_DLL
修改完成後,使用nmake /f makefile.vc nodebug=1即可編譯。
將makefile復制為.mak文件,通過Visual C++打開即可,.mak文件實質上就是一個makefile文件,它能夠指定編譯的具體命令,以及必須先設置VC命令行環境。
vcvars32.bat用於設置環境變數,在Visual C++ 98的bin目錄下執行nmake /f XXXX.mak,如果有makefile文件,則直接使用nmake即可。
這種方法適用於需要自定義編譯規則或特定環境配置的情況,通過修改makefile文件,可以實現更靈活的編譯方式。
㈣ 在cmd中輸入哪幾句話把c語言編譯和運行出來
1.打開命令行界面:鍵盤win+r,輸入CMD,回車。您可以打開命令行。