msdev是visual studio 6.0的IDE程序, devenv是visual studio 2005的IDE程序
兩種IDE程序, 既可以工作在圖形模式下,也可以工作在命令模式下.
其中, 直接運(yùn)行msdev 和 devenv將打開(kāi)vs6和vs2005的IDE界面. 命令行則支持不同的選項(xiàng).
Msdev的命令行用法:
Usage:
MSDEV [myprj.dsp|mywksp.dsw] - load project/workspace
[<filename>] - load source file
/? - display usage information
/EX <macroname> - execute a VBScript macro
/OUT <filename> - redirect command line output to a file
/USEENV - ignore tools.options.directories settings
/MAKE [<target>] [...] - build specified target(s)
[<project> - <platform> <configname>]
[[<project>|ALL] - [DEBUG|RELEASE|ALL]]
/CLEAN - delete intermediate files but don't build
/REBUILD - clean and build
/NORECURSE - don't build dependent projects
比如projectdsw, 此工程文件由包含很多的子項(xiàng)目.
編譯所有項(xiàng)目Debug版本為:
msdev project.dsw /make "all - Win32 Debug x86"
其中有一個(gè)project有許多其他projects組成,就是build_all, 包含了C/C++的動(dòng)態(tài)庫(kù),各種工具程序,還有各種示例程序. 編譯此project Debug版本就為:
msdev project.dsw /make "build_all - Win32 Debug x86"
如果還想編譯Java的動(dòng)態(tài)庫(kù), 在vc6中設(shè)置好java后, 運(yùn)行如下命令即可:
msdev project.dsw /make "db_java - Win32 Debug x86"
在工程文件外,還有一個(gè)用來(lái)衡量性能的程序, project_micro,編譯該程序的命令為:
msdev project_micro.dsp /make "project_micro - Win32 Debug x86"
即,對(duì)于項(xiàng)目文件而言, 其只有一個(gè)project, 就是其本身.
對(duì)于自動(dòng)化程序而言, msdev有一個(gè)弊端,就是程序返回值. 當(dāng)項(xiàng)目文件/工程文件不存在的時(shí)候, msdev的返回值居然是0!, 和編譯成功的一樣, 也許msdev認(rèn)為不存在就是成功吧.
devenv命令的格式就長(zhǎng)了一點(diǎn), 基本語(yǔ)法是:
devenv [solutionfile | projectfile | anyfile.ext] [switches]
比如, 為了方便VC2005以上的編譯, project將會(huì)同時(shí)提供vc6所用的dsw文件同時(shí), 也會(huì)推出一個(gè)sln文件,這sln文件就是solutionfile
使用此文件編譯project默認(rèn)配置的Debug版本為:
devenv project.sln /build "Debug|Win32"
只編譯db的動(dòng)態(tài)庫(kù)則為:
devenv project.sln /build "Debug|Win32" /project db
編譯project_micro則復(fù)雜點(diǎn),因?yàn)関c2005默認(rèn)的project file是.vcproj的,而不是.dsp格式的,而test_micro只有.dsp格式的故而,需要先轉(zhuǎn)化為.vcproj格式的, 可以用VCBuild工具:
VCBuild project_micro.dsp /upgrade
這樣就產(chǎn)生了project_micro.vcproj
用devenv編譯就是:
devenv project_micro.vcproj /build "Debug x86|Win32"
之所有配置與上面不同在與, project_micro中是適用于VC6的配置, 轉(zhuǎn)化過(guò)來(lái)以后, 配置是保留的.
與msdev不同, devenv將文件不存在視為編譯失敗. 更加適合程序處理.
附:devenv的命令行幫助
Microsoft (R) Visual Studio 8.0.50727.762 版。
版權(quán)所有 (C) Microsoft Corp 1984-2005。保留所有權(quán)利。
用法:
devenv [solutionfile | projectfile | anyfile.ext] [switches]
devenv 的第一個(gè)參數(shù)通常是一個(gè)解決方案文件或項(xiàng)目文件。如果您希望在編輯器中自動(dòng)打開(kāi)文件,也可以使用任何其他文件作為第一個(gè)參數(shù)。當(dāng)您輸入項(xiàng)目文件時(shí),IDE會(huì)在項(xiàng)目文件的父目錄中查找與該項(xiàng)目文件具有相同基名稱的 .sln 文件。如果不存在這樣的 .sln 文件,IDE 將查找引用該項(xiàng)目的單個(gè) .sln 文件。如果不存在這樣的單個(gè).sln 文件,則 IDE 將創(chuàng)建一個(gè)具有默認(rèn) .sln 文件名且未保存的解決方案,其基名稱與項(xiàng)目文件的基名稱相同。
命令行編譯:
devenv solutionfile.sln /build solutionconfig [ /project projectnameorfile [ /projectconfig name ] ]
可用的命令行開(kāi)關(guān):
/Build 使用指定的解決方案配置生成解決方案或
項(xiàng)目。例如“Debug”。如果可能存在多個(gè)平臺(tái),
則配置名稱必須用引號(hào)括起來(lái)
并且包含平臺(tái)名稱。例如“Debug|Win32”。
/Clean 刪除生成結(jié)果。
/Command 啟動(dòng) IDE 并執(zhí)行該命令。
/Deploy 生成并部署指定的生成配置。
/Edit 在此應(yīng)用程序的運(yùn)行實(shí)例中打開(kāi)
指定文件。如果沒(méi)有正在運(yùn)行的實(shí)例,
則啟動(dòng)一個(gè)具有簡(jiǎn)化窗口布局的新實(shí)例。
/LCID 設(shè)置 IDE 中用于用戶界面的默認(rèn)語(yǔ)言。
/Log 將 IDE 活動(dòng)記錄到指定的文件以用于故障排除。
/NoVSIP 禁用用于 VSIP 測(cè)試的 VSIP 開(kāi)發(fā)人員許可證密鑰。
/Out 將生成日志追加到指定的文件中。
/Project 指定生成、清理或部署的項(xiàng)目。
必須和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。
/ProjectConfig 重寫解決方案
配置中指定的項(xiàng)目配置。例如“Debug”。如果可能存在
多個(gè)平臺(tái),則配置名稱必須用引號(hào)括起來(lái)
并包含平臺(tái)名稱。例如“Debug|Win32”。
必須和 /Project 一起使用。
/Rebuild 先清理,然后使用指定配置生成
解決方案或項(xiàng)目。
/ResetAddin 移除與特定外接程序關(guān)聯(lián)的命令和命令用戶界面。
/ResetSettings 恢復(fù) IDE 的默認(rèn)設(shè)置,還可以重置為
指定的 VSSettings 文件。
/ResetSkipPkgs 清除所有添加到 VSPackages 的 SkipLoading 標(biāo)記。
/Run 編譯并運(yùn)行指定的解決方案。
/RunExit 編譯并運(yùn)行指定的解決方案然后關(guān)閉 IDE。
/SafeMode 以安全模式啟動(dòng) IDE,加載最少數(shù)量的窗口。
/Upgrade 升級(jí)項(xiàng)目或解決方案以及其中的所有項(xiàng)目。
并相應(yīng)地創(chuàng)建這些文件的備份。有關(guān)備份
過(guò)程的更多信息,請(qǐng)參見(jiàn)
“Visual Studio 轉(zhuǎn)換向?qū)А鄙系膸椭?
產(chǎn)品特定的開(kāi)關(guān):
/debugexe 打開(kāi)要調(diào)試的指定可執(zhí)行文件。
命令行的其余部分作為它的參數(shù)
傳遞到此執(zhí)行文件。
/useenv 使用 PATH、INCLUDE、LIBPATH 和 LIB 環(huán)境變量
而不是使用 VC++ 生成的 IDE 路徑。
要從命令行附加調(diào)試器,請(qǐng)使用:
VsJITDebugger.exe -p <pid>
vcbuild 的命令行幫助
Microsoft(R) Visual C++ 項(xiàng)目生成器 - 命令行版本 8.00.50727
版權(quán)所有 (C) Microsoft Corp 1993-2003。保留所有權(quán)利。
用法: vcbuild [options] [project|solution] [config|$ALL]
選項(xiàng):
/clean (/c) 只清除生成輸出
/error:<str> 輸出到 stderr 時(shí)添加到錯(cuò)誤行的前綴
/errfile:<file> 將所有錯(cuò)誤記錄到指定的文件
/htmllog:<file> 將輸出記錄到指定的 html 文件
(默認(rèn)值: $(IntDir)\BuildLog.htm)
/implib 為 DLL 配置創(chuàng)建導(dǎo)入庫(kù)(不鏈接)
/info:<str> 輸出到 stdout 時(shí)添加到信息行的前綴
/link (/l) 執(zhí)行鏈接,而不生成源
/logcommands 將命令和響應(yīng)文件打印到屏幕
/logfile:<file> 將所有輸出和生成信息記錄到指定的文件
/override:<file> 使用給定屬性表文件中的設(shè)置
重寫項(xiàng)目設(shè)置
/M<number> 指定要運(yùn)行的并發(fā)生成的數(shù)量(如果可以運(yùn)行并發(fā)生成)
/msbuild:<opt> 將 <opt> 傳遞至 msbuild.exe
/nocolor 在輸出錯(cuò)誤信息和警告消息時(shí)不使用顏色突出顯示
/nohtmllog 不編寫 HTML 生成日志文件
/noimplib 不生成導(dǎo)入庫(kù)。
注意: 此選項(xiàng)會(huì)重寫 /implib。
/nologo 取消顯示版本和版權(quán)信息
/nondefmsbuild 不要使用位于 .NET
Framework 安裝中的 msbuild.exe 副本
/platform:<str> 只為給定平臺(tái)生成配置
/implibobjs:<s> 管理員的其他依賴項(xiàng)
/rebuild (/r) 清除生成輸出并執(zhí)行生成
/forcelink 強(qiáng)制鏈接,而不生成源
/showenv 在 html 生成日志中顯示環(huán)境
/time 從開(kāi)始到結(jié)束的生成時(shí)間
/upgrade 將項(xiàng)目文件升級(jí)到受支持的最新格式
注意: 升級(jí)開(kāi)關(guān)不執(zhí)行生成
注意: 對(duì)于解決方案文件,會(huì)忽略此選項(xiàng)
/useenv (/u) 使用 INCLUDE 和 LIB 路徑的環(huán)境變量
/wrnfile:<file> 將所有警告記錄到指定的文件
/warning:<str> 輸出到 stdout 時(shí)添加到警告行的前綴
@<file> 從指定的響應(yīng)文件讀取選項(xiàng)
默認(rèn)行為:
===============================================================================
如果沒(méi)有指定項(xiàng)目,并且目錄中只有一個(gè) .vcproj 文件,
將會(huì)生成該項(xiàng)目。
如果沒(méi)有指定配置,并設(shè)置了 VCBUILD_DEFAULT_CFG 環(huán)境
變量,將會(huì)生成該變量指定的配置。如果未設(shè)置
該變量,將會(huì)生成所有的配置。
默認(rèn)操作是生成指定的配置,而不執(zhí)行清除。
還將從 VCBUILD_DEFAULT_OPTIONS 環(huán)境變量中讀取
選項(xiàng)。
===============================================================================