編譯命令cl
① 求cl.exe命令行編譯的實例。在線等
給你一個例子
@echo off
cd c:\cl6
call setvars.bat
cd bin\qq\qq
cl stdafx.cpp /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/Test.pch" /Yc"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
cl qq.cpp /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/Test.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
cl qqDlg.cpp /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/Test.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
rc /l 0x804 "qq.rc"
link /nologo /subsystem:windows /incremental:no "/pdb:Release/Test.pdb" /machine:I386 "/out:Release/Test.exe" Release/stdafx.obj Release/qq.obj Release/qqDlg.obj qq.res
編譯mfc程序通過
② 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無法找到的情況)