在命令行編譯vc
1. 求教關於用 VS2010用命令行如何 編譯C++工程 (最好有詳細示例)
用法:
devenv
[解決方案文件
|
項目文件
|
任意文件.擴展名]
[開關]
devenv
的第一個參數通常是一個解決方案文件或項目文件。
如果您希望在編輯器中自動打開文件,
也可以使用任何其他文件作為第一個參數。當您輸入項目文件時,ide
會在項目文件的父目錄中查找與該項目文件具有相同
基名稱的
.sln
文件。如果不存在這樣的
.sln
文件,
ide
將查找引用該項目的單個
.sln
文件。如果不存在這樣的單個
.sln
文件,則
ide
將創建一個具有默認
.sln
文件名的未保存
的解決方案,其基名稱與項目文件的基名稱相同。
2. 如何在DOS下編譯C/C++程序
1, 找到VS的cl.exe所在目錄,把這目錄復制下來:
我的VS2008的CL.EXE目錄是在E:\Program Files\Microsoft Visual Studio 9.0\VC\bin,
VS2010可以類似的找到..
在'我的電腦'上點右鍵,
選右鍵菜單'屬性'->'高級'->'環境變數',
在彈出的環境變數設置框里找"PATH"這個變數, (在用戶變數或系統變數里都可以)
然後在"PATH"的值後面,用分號分隔,
把將才找到的路徑串復制進去,選確定.
2, 重新運行CMD開啟新的命令窗.
3, 輸入cl回車檢查PATH路徑是否生效.
//以上步聚是設置環境變數,只需設一次以後就好用了.以後每次要命令行下編譯C++程序,就從下面第4步開始.
4, 輸入vcvars32 ,運行cl.exe同一路徑下的vcvars32.bat,設置其它環境變數.
5, 寫一個helloworld程序,保存成hello.cpp, cl hello.cpp回車試試編譯正常不. 如果成功,則生成hello.exe文件.
//-----------------------------------------------------------
C/C++ 編譯器選項
-優化-
/O1 最小化空間 /Op[-] 改善浮點數一致性
/O2 最大化速度 /Os 優選代碼空間
/Oa 假設沒有別名 /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0) /Ow 假設交叉函數別名
/Od 禁用優化(默認值) /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啟用全局優化 /Oy[-] 啟用框架指針省略
/Oi 啟用內部函數
-代碼生成-
/G3 為 80386 進行優化 /Gh 啟用 _penter 函數調用
/G4 為 80486 進行優化 /GH 啟用 _pexit 函數調用
/G5 為 Pentium 進行優化 /GR[-] 啟用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化 /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化 /EHs 啟用 C++ EH (沒有 SEH 異常)
/GB 為混合模型進行優化(默認) /EHa 啟用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定 /EHc extern "C" 默認為 nothrow
/Gr __fastcall 調用約定 /GT 生成纖維安全 TLS 訪問
/Gz __stdcall 調用約定 /Gm[-] 啟用最小重新生成
/GA 為 Windows 應用程序進行優化 /GL[-] 啟用鏈接時代碼生成
/Gf 啟用字元串池 /QIfdiv[-] 啟用 Pentium FDIV 修復
/GF 啟用只讀字元串池 /QI0f[-] 啟用 Pentium 0x0f 修復
/Gy 分隔鏈接器函數 /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 啟用堆棧檢查(/RTCs) /RTC1 啟用快速檢查(/RTCsu)
/Ge 對所有函數強制堆棧檢查 /RTCc 轉換為較小的類型檢查
/Gs[num] 控制堆棧檢查調用 /RTCs 堆棧幀運行時檢查
/GS 啟用安全檢查 /RTCu 未初始化的本地用法檢查
/clr[:noAssembly] 為公共語言運行庫編譯
noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
-輸出文件-
/Fa[file] 命名程序集列表文件 /Fo<file> 命名對象文件
/FA[sc] 配置程序集列表 /Fp<file> 命名預編譯頭文件
/Fd[file] 命名 .PDB 文件 /Fr[file] 命名源瀏覽器文件
/Fe<file> 命名可執行文件 /FR[file] 命名擴展 .SBR 文件
/Fm[file] 命名映射文件
-預處理器-
/AI<dir> 添加到程序集搜索路徑 /Fx 將插入的代碼合並到文件
/FU<file> 強制使用程序集/模塊 /FI<file> 命名強制包含文件
/C 不抽出注釋 /U<name> 移除預定義宏
/D<name>{=|#}<text> 定義宏 /u 移除所有預定義宏
/E 預處理到 stdout /I<dir> 添加到包含搜索路徑
/EP 預處理到 stdout,沒有 #line /X 忽略「標准位置」
/P 預處理到文件
-語言-
/Zi 啟用調試信息 /Ze 啟用擴展(默認)
/ZI 啟用「編輯並繼續」調試信息 /Zl 省略 .OBJ 中的默認庫名
/Z7 啟用舊式調試信息 /Zg 生成函數原型
/Zd 僅有行號調試信息 /Zs 只進行語法檢查
/Zp[n] 在 n 位元組邊界上包裝結構 /vd{0|1} 禁用/啟用 vtordisp
/Za 禁用擴展(暗指 /Op) /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言一致性,這里的參數可以是:
forScope - 對范圍規則強制使用標准 C++
wchar_t - wchar_t 是本機類型,不是 typedef
- 雜項 -
@<file> 選項響應文件 /wo<n> 發出一次警告 n
/?, /help 列印此幫助消息 /w<l><n> 為 n 設置警告等級 1-4
/c 只編譯,不鏈接 /W<n> 設置警告等級(默認 n=1)
/H<num> 最大外部名稱長度 /Wall 啟用所有警告
/J 默認 char 類型是 unsigned /Wp64 啟用 64 位埠定位警告
/nologo 取消顯示版權消息 /WX 將警告視為錯誤
/showIncludes 顯示包含文件名 /WL 啟用單行診斷
/Tc<source file> 將文件編譯為 .c /Yc[file] 創建 .PCH 文件
/Tp<source file> 將文件編譯為 .cpp /Yd 將調試信息放在每個 .OBJ 中
/TC 將所有文件編譯為 .c /Yl[sym] 為調試庫插入 .PCH 引用
/TP 將所有文件編譯為 .cpp /Yu[file] 使用 .PCH 文件
/V<string> 設置版本字元串 /YX[file] 自動 .PCH
/w 禁用所有警告 /Y- 禁用所有 PCH 選項
/wd<n> 禁用警告 n /Zm<n> 最大內存分配(默認為 %)
/we<n> 將警告 n 視為錯誤
-鏈接-
/MD 與 MSVCRT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/ML 與 LIBC.LIB 鏈接 /MLd 與 LIBCD.LIB 調試庫鏈接
/MT 與 LIBCMT.LIB 鏈接 /MTd 與 LIBCMTD.LIB 調試庫鏈接
/LD 創建 .DLL /F<num> 設置堆棧大小
/LDd 創建 .DLL 調試庫 /link [鏈接器選項和庫]
3. 如何用命令行 cmd 編譯運行c c 程序
Windows系統下編譯連接源代碼方法:
cl -GX test.c
-GX: 啟動同步異常處理
上面的命令會產生可執行程序:test.exe
在命令行中直接輸入:test.exe 就可運行該程序
Tips:
一、cmd中鍵入cl提示不認識cl命令,則由於無法找到cl.exe程序。解決方法如下:
添加系統變數(Path),這樣:我的電腦->屬性->高級->環境變數->系統變數,在path中添加
C:/Program Files/Microsoft Visual Studio 9.0/VC/bin;。
注意:
1、結尾最後用「;」隔開!
2、如果你的Microsoft Visual Studio 低於9.0版本或高於9.0版需要修改上面的路徑名稱。
二、cmd中鍵入cl執行編譯時會出現mspdb80.dll無法找到的情況,是因為VC/Bin/下沒有 「msobj80.dll,
mspdb80.dll,mspdbcore.dll,mspdbsrv.exe」這四個文件,解決的方法:
1>直接從Common7/IDE/下復制這四個文件到VC/Bin/下即可解決
2>添加系統變數(Path),這樣:我的電腦->屬性->高級->環境變數->系統變數,在path中添加 C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;,注意結尾最後用「;」隔開!
這樣在用cl編譯就不會出現mspdb80.dll文件找不到的錯誤了。
4. 如何在命令行編譯執行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命令編譯
5. vc命令行下怎麼使用資源編譯器
rc.exe用於鏈接擴展名為.rc的資源腳本文件。其格式為:
rc 資源腳本文件名.rc
經過該步之後,如果沒有錯誤,會生成 擴展名為 .res 的資源文件
然後把已編譯好的 obj文件與 res文件鏈接(obj是目標文件,在命令行下可以用cl.exe生成),就可以形成 exe或dll文件。這一步需要用到鏈接器 linker.exe。其格式為:
Link /subsystem:windows obj文件名.obj 資源文件名.res
最終將會產生 exe 。
6. 命令行下編譯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
7. 如何在命令行下編譯VC程序
如何在命令行下編譯VC 程序 最近電腦裝的東西太多了,編譯一個程序都好半天,實在沒辦法,只能在命令行下了,這樣還能快一點。(應該對我機器來說快很多啊。O(∩_∩)o)閑言少敘。 第一步:設置環境變數。我的電腦,右擊,-> 屬性 ->高級 ->環境變數 ->新建 變數名: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++的安裝目錄。 在這里加入這兩個變數 當然,你也可以在系統變數中添加這兩個變數,這樣所有這台機器上的用戶都可以使用了。 都做完以後,這時就去命令行下試驗一下吧。 鍵入 cl /?會出現一大堆參數,具體含義大家自己摸索吧,我英語不好,這里就不誤導大家了。 一個實例,當然還是Hello World 了 打開記事本,敲入以下程序,重名為Hello.cpp #include int main() { cout << "HelloWorld!" << endl; return 0; } 進入命令行,找到該文件所在目錄,鍵入cl Hello.cpp ,然後鍵入Hello.exe 於是乎,熟悉的Hello World 出現了。 編譯多文件程序怎麼辦?其實加個通配符就歐了。如下: cl *.cpp 由於手頭沒有比較大規模的程序,就不跟大家演示了。 對了,還有關於link 選項,如果你編譯時,出現了在圖形界面的情況下能正常編譯連接,而命令行下出現一堆link 錯誤,那你就得用這個選項了 cl ?.cpp /link ?.lib,用到了哪個 lib 在這里加進去就OK 了。希望對機器不是特別快的同學有用。
8. 如何在Windows下用命令行編譯C/C++文件
在控制台編譯運行一個C程序,在windows上的c語言編譯器為cl.exe,在linux平台上的c語言編譯器是gcc。
在命令提示符中,執行cl
test.c(test.c是c語言源碼文件)。下圖是用cl編譯器編譯main.cxx的誰的,並且執行生成的程序main.exe。
9. 如何用命令行編譯鏈接c++
打開「開發人員命令提示」。
在命令提示符下,請創建源文件的目錄並使其成為當前工作目錄。例如,鍵入md c:simple並按 Enter 以創建名為 Simple 的目錄,然後鍵入cd c:simple並按 Enter 以更改到此目錄。
在命令提示符下,鍵入notepad並按 Enter。
在記事本中,輸入下列各行。
在菜單欄上,依次選擇「文件」、「保存」以打開「另存為」對話框。導航至已創建的目錄。在「文件名」框中,輸入源文件的名稱(例如 simple.c),然後在「保存類型」下拉列表中,選擇「所有文件(*.*)」。選擇「保存」按鈕以在工作目錄中創建 C 源文件。
在命令提示符下,輸入dir並按 Enter。你應該看到所創建的源文件
在命令提示符下,指定cl命令和源文件的名稱(例如cl simple.c),然後按 Enter 編譯此程序。cl.exe 編譯器將生成一個包含已編譯代碼的 .obj 文件,然後運行鏈接器以生成具有源文件名稱的可執行程序,但會具有 .exe 文件名擴展(例如 simple.exe)。
10. 怎麼在命令提示行運行C程序
在命令提示行運行C程序可以按照以下步驟進行:
一、打開命令提示行(CMD),此時默認的所在路徑一般是在C盤,如圖