⑴ vc6.0命令行
VC就是CL編譯器了,VC6也是用CL編譯器的,只不過它是封裝了編譯鏈接命令而已,讓你一鍵就可以完成,如果你用命令行下調用CL編譯器,則需要手動操作,比較復雜。
具體在你的vc目錄下的VC98/Bin文件夾下,有個VCVARS32.BAT文件,首先在命令提示行中運行該批處理文件,注冊VC環境變數(安裝時有個選項如果選擇了就不用注冊了,默認安裝是不選擇的),這時就可以在你的源文件目錄下調用CL編譯器編譯你的源程序了,比如,編譯一個.c的控制台程序test.c需要輸入的命令是:cl -GX test.c
關於命令行下的具體用法你參考幫助,我用的不多
⑵ vs2013怎麼在命令行使用cl編譯
1. 「cl不是可用的內部命令或可執行程序」
----原因:環境變數Path沒有設置好。
----解決:在環境變數Path中添加VC的bin目錄。Path= D:\Microsoft Visual Studio 9.0\VC\bin。在D:\Microsoft Visual Studio 9.0\VC\ce\bin下還有其他一些編譯器,看名字是交叉編譯用的
2.「mspdb80.dll無法找到」
----原因:vs2008的VC\bin目錄下缺少msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe這四個文件。
----解決:在D:\Microsoft Visual Studio 9.0\Common7\IDE下復制這四個文件到VC\bin。
3.解決以上問題以後,可以直接在命令行的任何目錄下編譯C/C++文件了。可是又出現新狀況:
「fatal error: cannot open include file」
----原因:vs2008未設置include和lib的環境變數。
----解決:
3.1在環境變數里添加變數INCLUDE,包含進VC\Include和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include(這個是安裝vs時自動安裝在C盤的)兩個目錄
INCLUDE=D:\Microsoft Visual Studio 9.0\VC\include; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
3.2添加變數LIB,包含進VC\lib和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib(這個也是安裝vs時自動安裝在C盤的)兩個目錄:
LIB=D:\Microsoft Visual Studio 9.0\VC\lib; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
4.提示:fatal error LNK1104: 無法打開文件「kernel32.lib」,(在IDE裡面運行沒有問題,因為IDE中採用了另外的封裝了庫)
----原因:vs2008未設置include和lib的環境變數。
----解決:在環境變數里添加變數LIB,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
或者將kernel32.lib直接到vc的lib目錄下也可以
至此,問題終於解決了,hoho~o(∩_∩)o...
【Tips】
1.使用-GX選項時,2005的編譯器會提示GX已過時,使用-EHsc代替
cl : Command line warning D9035 : option 'GX' has been deprecated and will be re
moved in a future release
cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
2.環境變數可以通過「我的電腦右鍵->高級->環境變數」設置。當然也有其它方法,欲知詳情請網路之。
【Ref】
http://blog.163.com/danshiming@126/blog/static/109412748201312703225352/(在命令行界面使用vs2005的cl )
http://hi..com/fymzone/blog/item/fdac1bfb9ba55f65034f5689.html(用vs2005編譯器cl在控制台下編譯)
http://hi..com/vanta/blog/item/f62035a80ec521b5cb130c3b.html(在cmd中鍵入cl執行編譯時會出現mspdb80.dll無法找到的情況)
⑶ 求教關於用 VS2010用命令行如何 編譯C++工程 (最好有詳細示例)
用法:
devenv
[解決方案文件
|
項目文件
|
任意文件.擴展名]
[開關]
devenv
的第一個參數通常是一個解決方案文件或項目文件。
如果您希望在編輯器中自動打開文件,
也可以使用任何其他文件作為第一個參數。當您輸入項目文件時,ide
會在項目文件的父目錄中查找與該項目文件具有相同
基名稱的
.sln
文件。如果不存在這樣的
.sln
文件,
ide
將查找引用該項目的單個
.sln
文件。如果不存在這樣的單個
.sln
文件,則
ide
將創建一個具有默認
.sln
文件名的未保存
的解決方案,其基名稱與項目文件的基名稱相同。
⑷ 命令行下編譯vs2010工程怎麼做
1.找到vs的cl.exe所在目錄,在vs2010為f:\visual
2010\vc\bin,可參考。
2.點擊「我的電腦」進行環境變數的配置,找到"path"變數加分號後加入剛才的路徑。
3.重新運行cmd開啟新的命令窗口,輸入cl檢查path設置是否生效。(只需配置一次即可,以後再次運行的時候不用再運行此命令)。
4.輸入vcvars32,這條命令是運行同路徑下的vcvars32.bat設置它的環境變數。
5.輸入cl
hello.cpp即可正常編譯。
編譯工程有兩個方法:
"c:\program
files\microsoft
visual
studio
10.0\common7\ide\devenv.exe"
/rebuild
"release|win32"
xxxxxxxxx.sln
專門的build工具:msbuild,通過開始菜單=>microsoft
visual
studio
2010=>visual
studio
tools=>visual
studio
command
prompt
(2010)
,啟動命令行環境,執行一下msbuild
⑸ C++高手求助!關於VC6.0的編譯與運行。。我目前只是知道單個文件的編譯與運行。
G++和VC的編譯,不論是操作,還是實現,其基本原理都是一樣的。你說你從G++轉VC就不懂了,那麼我不客氣地說一句,你G++也不咋地。
在linux下使用G++編譯,要麼用VI編輯器編輯,要麼用ECLIPSE+CDT編輯,也都可以做到類似VC的集成界面。不過更常用的則是手工編譯,自己輸入參數。
相對而言,VC中,更多地是使用集成環境的配置自動編譯。但不論怎樣,總的步驟都是差不多的,比如,預處理,多次掃描,匯編,優化,生成二進制代碼,鏈接庫等等。
在VC集成環境下,VC會自動編譯工程中的每一個.cpp文件(注意,是.cpp文件),然後鏈接的時候,把所有的obj都鏈接起來。主菜單:Build。(快捷鍵為F7,或者CTRL+F7)
如果你不用VC的集成環境來編譯,也可以手工編譯,或者命令行自動編譯:使用NMAKE來處理makefile文件(linux下一般使用make來處理makefile,個人感覺比NMAKE更通用,強大),也可以使用make for windows版本來處理makefile,一般在企業中的伺服器進行編譯時,NMAKE或者make用得比較多,而集成開發環境用得較少。
⑹ 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 命令。每個選項必須在同一行上開始和結束;不能使用反斜杠 (\) 跨行組合一個選項。
命令文件用一個 @ 符後接一個文件名指定;該文件名可指定絕對路徑或相對路徑。
⑺ c++編譯器都有什麼,怎麼可以用命令行編譯c++,怎樣學習c++,c++和vc++的區別是什麼
c++的編譯器常見的有 微軟的, GCC(linux下最常用的,也有windows版本,叫mingw) 和 intel的(intel有不少好東西,對性能要求高的話可以考慮)
但是集成開發環境就多了 微軟的 visual studio (VC6 VC2005 VC2008)系列,也可以把intel的編譯器掛到VS下面,取代微軟的編譯器,dev-c++ 和 codeblocks 這兩個用的都是用的GCC的編譯器。
windows下 ,最好不用命令行編譯很麻煩的,大一點的項目還要寫makefile來管理,linux下 g++ -o file file.cc 然後 ./file 就能執行剛才的程序了
學C++ 多練 多寫代碼 找本好的參考書 比如 c++ primer ,教材隨便找本就行了 網上可以下到電子書的
c++是一門語言 而VC++通常指的是微軟為了開發windows下的圖形界面程序,而給出的一些API函數,以及封裝了這些API函數的MFC庫,它們的語法是C++的語法。C++在linux下可以照常使用,但VC++到了linux下就沒法用了,因為linux下沒有MFC庫,當然它也有自己的一些圖形庫
⑻ 如何在Windows下用命令行編譯C/C++文件
在控制台編譯運行一個C程序,在windows上的c語言編譯器為cl.exe,在linux平台上的c語言編譯器是gcc。
在命令提示符中,執行cl
test.c(test.c是c語言源碼文件)。下圖是用cl編譯器編譯main.cxx的誰的,並且執行生成的程序main.exe。
⑼ 如何在命令行編譯執行C++源文件
如果你安裝的是VC6.0,那麼就要自己配置一下
環境變數
第一步:設置環境變數。我的電腦,
右擊
,->
屬性
->高級->環境變數
->新建
變數名:include
值:E:\Program
Files\Microsoft
Visual
Studio\VC98\atl\include;E:\Program
Files\Microsoft
Visual
Studio\VC98\mfc\include;E:\Program
Files\Microsoft
Visual
Studio\VC98\include
變數名:lib
值:E:\Program
Files\Microsoft
Visual
Studio\VC98\mfc\lib;E:\Program
Files\Microsoft
Visual
Studio\VC98\lib
這個值是你自己的C++的安裝目錄。
變數名:PATH(這個不用新建的)
值:在以前的值後面加上;E:\Program
Files\Microsoft
Visual
Studio\Common\Tools\WinNT;E:\Program
Files\Microsoft
Visual
Studio\Common\MSDev98\Bin;E:\Program
Files\Microsoft
Visual
Studio\Common\Tools;E:\Program
Files\Microsoft
Visual
Studio\VC98\bin然後就可以調用cl命令編譯,至於cl命令各參數的意義,你可以去網上搜如果你安裝的是VS,那麼系統會給你配置好環境變數,你可以直接調用Visual
Stdio
命令行提示符輸入cl命令編譯
⑽ 在VC里如何用Makefile文件編譯
運行cmd.exe (or command.com in win9x)->進到vc/bin目錄->運行vc-vars32.bat->進到makefile 所在的目錄->nmake /f makefile
從sourceforge上下載下來的libjpeg源代碼中有一個makefile.vc的文件,可以通過nmake /f makefile.vc [nodebug=1]來編譯libjpeg,但是只能編譯靜態庫,如果需要編譯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文件,然後用VC打開即可!
.mak 就是一個makefile
可以指定怎樣編譯(命令行,必須先設置VC命令行環境)
vcvars32.bat可設置環境,在vc98/bin下 nmake /f XXXX.mak
如果有一個makefile就只要nmake就可以了。