青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 16,  comments - 34,  trackbacks - 0

有些時候使用命令行而不是IDE去編譯源代碼會比較方便。
而在命令行下使用msvc的編譯器——cl, 需要為其配置環(huán)境。



一、 環(huán)境變量測試

測試cl的環(huán)境是否配置妥當, 可以執(zhí)行如下測試:
win鍵+R 啟動運行 -> 輸入cmd(winnt系列)或者command(win95系列) -> 回車, 打開命令行窗口。
鍵入"cl"并回車, 如果有類似如下的輸出 :

--------------------------------------------------------------------------------
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]
--------------------------------------------------------------------------------
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]
--------------------------------------------------------------------------------
用于 80x86 的 Microsoft (R) 32 位 C/C++ 優(yōu)化編譯器 15.00.30729.01 版
版權所有(C) Microsoft Corporation。保留所有權利。

用法: cl [ 選項... ] 文件名... [ /link 鏈接選項... ]

--------------------------------------------------------------------------------

一般來說, 就可以在命令行下使用cl了。

cl文件版本與VS版本、VC產品版本、_MSC_VER宏的對應關系如下

VS版本

VC產品版本號

cl文件版本號

_MSC_VER宏的值

98

6.x

12.x

1200

2005

8.x

14.x

1400

2008

9.x

15.x

1500




二、 測試失敗

如果出現(xiàn):
1. “cl不是內部或外部命令,也不是可運行的程序或批處理文件。”
說明cl不在Path環(huán)境變量中。

2. 找不到xxx.dll。
cl在Path環(huán)境變量中, Path中缺少必要的dll的路徑。

3. 上述測試通過, 但是在編譯時出現(xiàn)找不到頭文件或者庫。
說明Path環(huán)境變量中有cl和必要dll的路徑, 但是仍缺少其他一些環(huán)境變量。

這些情況, 都需要進一步配置環(huán)境變量。



三、 配置環(huán)境變量

        三.1 、讓安裝包幫助注冊環(huán)境變量

VC6在安裝的時候,會彈出一個對話框,讓你選擇是否注冊VC6的環(huán)境變量。如下:

For your convenince, the environment variables required to run build tools from a command prompt are saved in the VCVARS32.BAT in your BIN directory

(復選框) Register Environment Variables

Turn on this option to register environment variables for running Visual C++ tools from the command line.

默認復選框是沒有選中的。
如果選中, 安裝完畢后就會添加必要的環(huán)境變量。


所以, 一個辦法是重新安裝VC6(反正很小,相對于VC8、9安裝十分快速)。


        三.2 、手工添加環(huán)境變量

以VC6舉例,我們可以在 :“我的電腦” -> “屬性” -> “高級” -> “環(huán)境變量”中添加如下變量:

%Path%="prefix\Microsoft Visual Studio\VC98\Bin";%Path%
cl.exe所在路徑。

%include%="prefix\Microsoft Visual Studio\VC98\Include";%include%
%lib%="prefix\Microsoft Visual Studio\VC98\Lib";%lib%
C/C++以及Platform SDK

%include%="prefix\Microsoft Visual Studio\VC98\MFC\Include";%include%  
%lib%="prefix\Microsoft Visual Studio\VC98\MFC\Lib";%include%
MFC

%include%="prefix\Microsoft Visual Studio\VC98\ATL\Include";%include%
ATL

(其中的prefix是安裝目錄的前綴)之后就可以在命令行中使用cl了。


同時, VC6、8、9都提供了一個批處理vcvars32.bat
我們可以查看相應的vcvars32.bat最終做了什么工作,而手工加入需要的變量。
下內容摘自我機器上的vsvars32.bat(VC8、9的vcvars32.bat最終調用它們):
vc8

vc9

可以根據(jù)它們,給VC8、9設置環(huán)境變量。


      三.3 、使用vcvars32.bat

上面提到vcvars32.bat,它們的位置如下:

VC6  prefix\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
VC8  prefix\Microsoft Visual Studio 8\VC\bin\vcvars32.bat
VC9  prefix\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat

需要注意的是: 這些批處理文件只會在當前進程中設置(局部的)環(huán)境變量,也就是說:

1. 用cmd(或者command)打開的命令行窗口中, 運行某個vcvar32.bat一次。
那么當前命令行窗口中就可以正常使用cl,直到關閉。

2. 寫批處理文件需要使用call prefix\vcvars32.bat,而不是直接啟動vcvars32.bat。
前者為當前進程(cpl.bat創(chuàng)建的進程)添加局部于進程環(huán)境變量。
后者啟動一個進程, 為其加入環(huán)境變量, 然后該進程立即退出——沒有任何作用。


      三.4、 使用VSXXCOMNTOOLS變量(VC8、9)

對于VC8、9有另一種方式——不注冊全局的(系統(tǒng)或當前用戶)環(huán)境變量,僅為當前進程設置(局部的)環(huán)境變量。
因為VC8、9都可以很方便的為單個進程設置環(huán)境變量。

觀察vc8和vc9的vcvars32.bat的內容(位置見上), 發(fā)現(xiàn)它們都只有一行:
"%VS80COMNTOOLS%vsvars32.bat"
"%VS90COMNTOOLS%vsvars32.bat"

VS80COMNTOOLS、VS90COMNTOOLS(注意不是VC而是VS)分別是VS2005和VS2008安裝后會設置的環(huán)境變量。
所以我們也可以在自己的批處理中,很方便的為當前進程設置需要的環(huán)境變量。如下:

call "%VS80COMNTOOLS%vsvars32.bat"
以下cl命令將執(zhí)行VC8的cl。

call "%VS90COMNTOOLS%vsvars32.bat"
以下cl命令將執(zhí)行VC9的cl。



四、 總結

如果僅需要使用某個版本的VC, 并且只為自己方便而使用命令行, 可以使用上面任何一種方式。
簡單歸納如下:

1、 使用全局環(huán)境變量——在系統(tǒng)或當前用戶變量中加入需要的值。
        1.1 重新安裝
        1.2 手工加入

2、 不使用全局環(huán)境變量
——在執(zhí)行cl前,先使用對應的vcvars32.bat(命令行窗口中執(zhí)行或者腳本中call prefix\vcvars32.bat)。

        2.1 將vcvars32.bat加入Path變量
        2.2 使用"%VSXXCOMNTOOLS%vsvars.bat" (VC8、9) 或者 absolutePath\vcvars32.bat


如果需要使用多個版本的VC、 或者需要將編譯腳本發(fā)布給客戶使用, 就不能這么隨意了。
具體見:《配置msvc命令行環(huán)境(續(xù))——編寫msvc編譯腳本



相關鏈接:

——《配置msvc命令行環(huán)境(續(xù))——編寫msvc編譯腳本
http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html


——《IDE 不是程序員的唯一選擇(一)
http://blog.codingnow.com/2008/09/replacement_of_ide_1.html



 
Creative Commons License
作品采用知識共享署名-非商業(yè)性使用-相同方式共享 2.5 中國大陸許可協(xié)議進行許可。

轉載請注明 :
文章作者 - OwnWaterloo
發(fā)表時間 - 2009年04月15日
原文鏈接 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html
posted on 2009-04-15 21:29 OwnWaterloo 閱讀(58347) 評論(0)  編輯 收藏 引用
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(8)

隨筆檔案(16)

鏈接

搜索

  •  

積分與排名

  • 積分 - 198794
  • 排名 - 134

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美激情一区二区| 亚洲午夜精品久久久久久浪潮| 久久久久在线| 国产精品另类一区| 看片网站欧美日韩| 亚洲私人影院| 久久婷婷影院| 亚洲综合日韩在线| 亚洲一区二区欧美| 久久综合激情| 亚洲欧美日韩另类| 亚洲经典一区| 久久尤物视频| 国产欧美日韩视频| 亚洲欧美日韩一区| 欧美.日韩.国产.一区.二区| 亚洲精品在线免费| av成人福利| 亚洲狼人综合| 欧美日韩99| 欧美日韩国产色视频| 国产日本欧美视频| 免费成人黄色| 欧美中文在线字幕| 亚洲国产mv| 亚洲国产精品久久久久秋霞影院| 亚洲高清不卡| 久久成人一区| 久久国产精品99国产| 国内免费精品永久在线视频| 伊人春色精品| 国产日韩亚洲欧美综合| 国产一区二区精品丝袜| 91久久久一线二线三线品牌| 在线亚洲一区| 欧美成人精品1314www| 亚洲日本va在线观看| 久久精彩视频| 一本色道久久综合亚洲91| 中日韩高清电影网| 国产精品麻豆成人av电影艾秋| 欧美成人免费网| 久久国产精品99国产精| 午夜精品一区二区在线观看| 99国产精品久久久| 亚洲三级影片| 免费成人av在线看| 国产日韩欧美综合一区| 国产一区二区日韩精品欧美精品| 亚洲茄子视频| 国产一区视频观看| 久久久噜噜噜久久中文字免| 欧美区一区二| 亚洲国产欧美在线人成| 亚洲国产精品久久91精品| 一区二区三区在线视频免费观看 | 久久黄金**| 免费亚洲婷婷| 国产在线麻豆精品观看| 欧美在线视频一区二区| 亚洲国产精品一区在线观看不卡 | 国产欧美精品一区二区色综合| 亚洲激情视频在线播放| 性做久久久久久免费观看欧美| 欧美激情亚洲激情| 国产精品综合色区在线观看| 性18欧美另类| 亚洲成色777777在线观看影院| 欧美国产日韩精品| 亚洲高清123| 欧美aaa级| 亚洲欧美日韩系列| 欧美亚洲日本国产| 亚洲国产精品999| 欧美日本一区二区视频在线观看| 亚洲愉拍自拍另类高清精品| 激情综合色综合久久综合| 女生裸体视频一区二区三区| 久久国产精品一区二区| 久久久久免费| 亚洲男人第一av网站| 99精品视频免费全部在线| 亚洲美女一区| 久久人体大胆视频| 亚洲精品视频免费在线观看| 亚洲激情黄色| 欧美电影美腿模特1979在线看 | 99亚洲视频| 黄色一区二区在线| 国产精品毛片a∨一区二区三区|国 | 欧美极品影院| 欧美 亚欧 日韩视频在线| 欧美www视频| 亚洲毛片一区| 亚洲在线观看视频| 欧美日韩卡一卡二| 亚洲一区免费网站| 亚洲精品国产精品久久清纯直播| 欧美mv日韩mv亚洲| 国产精品99久久久久久久女警 | 久久精品视频va| 午夜视频在线观看一区二区三区 | 久久久久免费| 久久综合久久综合久久| 欧美亚洲一级片| 性色av一区二区三区在线观看| 欧美一区二区黄色| 尤物视频一区二区| 一区二区久久久久久| 亚洲在线1234| 亚洲精品护士| 中日韩美女免费视频网站在线观看| 欧美一区二区女人| 国产精品久久国产精品99gif| 99视频+国产日韩欧美| 宅男66日本亚洲欧美视频| 欧美激情91| 久久亚洲春色中文字幕| 国产主播一区二区三区四区| 久久精品免费| 久久aⅴ乱码一区二区三区| 欧美国产日本在线| 欧美另类在线观看| 久久精品一区二区三区不卡| 一区二区三区四区国产| 中文欧美日韩| 国产情侣一区| 久久亚洲精品伦理| 久久一区二区三区四区五区| 亚洲黄色高清| 亚洲精品久久久蜜桃| 快she精品国产999| 亚洲特黄一级片| 国产精品男女猛烈高潮激情| 欧美在线一级va免费观看| 西西裸体人体做爰大胆久久久| 亚洲激情亚洲| 久久精品视频在线免费观看| 亚洲一区免费网站| 麻豆亚洲精品| 国产精品稀缺呦系列在线| 国产日韩一区二区三区| 久久久久久久久久久久久9999 | 久久视频一区二区| 日韩视频免费| 午夜性色一区二区三区免费视频 | 免费美女久久99| 欧美激情精品| 在线观看一区| 久久久久久亚洲精品杨幂换脸 | 亚洲人成人77777线观看| 一区二区三区视频观看| 亚洲黄色小视频| 国产精品一区二区久久精品 | 国产亚洲日本欧美韩国| 亚洲二区三区四区| 国产视频欧美| 看片网站欧美日韩| 久久亚洲视频| 国产精品美女久久久久aⅴ国产馆| 久热这里只精品99re8久| 久久亚洲二区| 国产亚洲永久域名| 久久精品一本| 欧美激情亚洲一区| 亚洲一区3d动漫同人无遮挡| 欧美视频精品在线| 亚洲午夜国产成人av电影男同| 久久久亚洲国产美女国产盗摄| 91久久精品美女高潮| 在线成人性视频| 免费久久99精品国产| 欧美激情一区二区三区| 亚洲高清视频的网址| 久久超碰97人人做人人爱| 亚洲日韩中文字幕在线播放| 午夜国产欧美理论在线播放| 国产欧美日韩另类一区| 久久综合色婷婷| 久久精品国产96久久久香蕉| 蜜桃久久精品乱码一区二区| 亚洲美女中文字幕| 国产视频一区免费看| 久久精品国内一区二区三区| 亚洲欧美999| 一区二区三区**美女毛片| 久久综合亚州| 久久午夜电影| 久久天堂国产精品| 久久精品国产在热久久| 久久久综合网站| 久久久久国产精品厨房| 亚洲缚视频在线观看| 欧美丝袜一区二区三区| 国产精品第一页第二页第三页| 欧美日韩伦理在线| 免费人成网站在线观看欧美高清| 久久国产精品免费一区| 久久久国产精品亚洲一区| 一本久道久久综合狠狠爱|