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

posts - 16,  comments - 34,  trackbacks - 0

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



一、 環境變量測試

測試cl的環境是否配置妥當, 可以執行如下測試:
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++ 優化編譯器 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




二、 測試失敗

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

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

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

這些情況, 都需要進一步配置環境變量。



三、 配置環境變量

        三.1 、讓安裝包幫助注冊環境變量

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

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.

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


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


        三.2 、手工添加環境變量

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

%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

可以根據它們,給VC8、9設置環境變量。


      三.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

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

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

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


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

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

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

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

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

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



四、 總結

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

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

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

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


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



相關鏈接:

——《配置msvc命令行環境(續)——編寫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
作品采用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可。

轉載請注明 :
文章作者 - OwnWaterloo
發表時間 - 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 閱讀(58344) 評論(0)  編輯 收藏 引用
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(8)

隨筆檔案(16)

鏈接

搜索

  •  

積分與排名

  • 積分 - 198759
  • 排名 - 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>
            久久精品99久久香蕉国产色戒| 亚洲第一综合天堂另类专| 亚洲国产视频a| 欧美黄色小视频| 亚洲性人人天天夜夜摸| 亚洲网站啪啪| 一区二区三区在线免费播放| 亚洲春色另类小说| 欧美午夜视频在线| 久久久精彩视频| 葵司免费一区二区三区四区五区| 亚洲精品视频在线看| 亚洲少妇一区| 一区在线播放| 一区二区三区视频在线看| 国产一区在线看| 亚洲高清av| 91久久国产综合久久| 国产精品视频一区二区三区| 久久亚洲私人国产精品va| 欧美激情第三页| 久久激情综合网| 欧美日韩国产a| 久久久亚洲高清| 欧美日韩一区二区三区在线观看免| 久久成人综合视频| 欧美激情精品久久久久久变态| 性欧美xxxx大乳国产app| 久久尤物电影视频在线观看| 中国成人黄色视屏| 久久久91精品国产一区二区精品| 一区二区三区www| 欧美在线综合视频| 一区二区三区国产盗摄| 欧美中文在线字幕| 亚洲午夜免费福利视频| 久久免费的精品国产v∧| 午夜精品美女自拍福到在线 | 亚洲福利久久| 国产亚洲视频在线| 亚洲小说春色综合另类电影| 亚洲区欧美区| 久久米奇亚洲| 久久久亚洲国产天美传媒修理工| 国产精品vvv| 日韩视频在线一区二区| 亚洲人成在线播放网站岛国| 久久成人免费网| 久久精品欧美| 国产欧美精品日韩区二区麻豆天美 | 在线观看久久av| 午夜精品福利一区二区蜜股av| 日韩西西人体444www| 裸体素人女欧美日韩| 久久综合九色九九| 国产日韩欧美不卡在线| 亚洲男人av电影| 午夜一区不卡| 国产精品久久九九| 亚洲夜间福利| 午夜亚洲影视| 国产欧美一区二区精品忘忧草 | 亚洲理伦在线| 一区二区三区日韩精品视频| 欧美日韩成人在线视频| 99国产精品视频免费观看一公开 | 国产一区二区三区黄视频| 午夜一级在线看亚洲| 久久不射中文字幕| 狠狠综合久久av一区二区老牛| 欧美一区二区福利在线| 久久久五月天| 亚洲激情小视频| 欧美精品麻豆| 亚洲手机在线| 久久精品一级爱片| 欧美韩国日本综合| 日韩视频免费观看| 亚洲欧美另类在线| 国产一区二区三区久久久久久久久| 欧美一区二区国产| 欧美va亚洲va国产综合| 亚洲美女中文字幕| 国产精品高清一区二区三区| 香蕉乱码成人久久天堂爱免费| 久久视频一区二区| 亚洲精品久久久久中文字幕欢迎你| 欧美精品97| 亚洲欧美精品在线观看| 欧美成人精品在线播放| aa成人免费视频| 国产日韩欧美91| 欧美成人免费大片| 亚洲综合色网站| 欧美电影免费观看| 亚洲女ⅴideoshd黑人| 极品少妇一区二区三区精品视频| 欧美成人激情在线| 午夜一区在线| 亚洲人成网在线播放| 欧美一区二区三区日韩| 亚洲国产日韩在线| 国产精品永久免费| 欧美xart系列高清| 性色一区二区| 亚洲精品色婷婷福利天堂| 久久久精品日韩| 在线视频欧美一区| 亚洲高清色综合| 国产欧美日韩精品a在线观看| 免费看黄裸体一级大秀欧美| 亚洲免费视频观看| 亚洲人成人一区二区三区| 久久久蜜臀国产一区二区| 亚洲图片欧洲图片av| 亚洲第一二三四五区| 国产欧美日韩高清| 欧美三级视频在线播放| 欧美91视频| 久久久亚洲国产天美传媒修理工| 亚洲午夜伦理| av成人毛片| 亚洲精品系列| 亚洲激情视频在线观看| 欧美电影打屁股sp| 久久久夜夜夜| 久久久免费精品视频| 欧美一区二区视频在线观看| 亚洲性感激情| 在线亚洲欧美| 一区二区三区久久| 一区二区电影免费观看| 日韩西西人体444www| 91久久精品国产91性色| 亚洲高清免费视频| 亚洲国产成人一区| 亚洲国产毛片完整版| 亚洲福利视频网| 在线日韩日本国产亚洲| …久久精品99久久香蕉国产 | 激情五月综合色婷婷一区二区| 国产女人aaa级久久久级| 国产精品成av人在线视午夜片| 欧美日韩另类字幕中文| 欧美日韩中文字幕| 国产精品久久国产精品99gif | 欧美另类久久久品| 欧美日韩一区二区在线播放| 欧美三级欧美一级| 久久国产精品第一页| 久久久999精品免费| 久久婷婷丁香| 欧美大片免费看| 欧美日韩午夜视频在线观看| 欧美三级免费| 国产亚洲欧洲一区高清在线观看| 韩国av一区| 亚洲人成小说网站色在线| 一区二区三区福利| 午夜精品成人在线视频| 久久久久久国产精品mv| 欧美国产日本在线| 亚洲美女中出| 亚洲欧美一区二区三区在线| 久久久999| 欧美日韩国产在线| 国产欧美一区二区三区另类精品 | 欧美激情一区二区久久久| 欧美四级剧情无删版影片| 国产老肥熟一区二区三区| 在线成人www免费观看视频| aⅴ色国产欧美| 久久精品国产欧美激情| 亚洲国产精品久久| 亚洲午夜性刺激影院| 久久视频一区| 国产精品激情偷乱一区二区∴| 国户精品久久久久久久久久久不卡| 亚洲精品久久久久久久久| 欧美一区二区三区在线视频| 欧美刺激午夜性久久久久久久| 一区二区三区国产在线| 久久青草欧美一区二区三区| 欧美婷婷六月丁香综合色| 在线观看成人网| 欧美伊人影院| 亚洲精品中文在线| 久久久综合视频| 国产情人节一区| 一区二区三区免费网站| 另类激情亚洲| 亚洲欧美一区二区三区久久| 欧美日本在线看| 91久久久一线二线三线品牌| 欧美一区二区三区另类| a4yy欧美一区二区三区| 欧美电影免费| 亚洲第一中文字幕| 久久青青草综合| 午夜免费日韩视频|