您的位置:首页 > 编程语言 > C语言/C++

如何配置才能使用cl命令编译C/C++程序?

2016-09-19 13:05 561 查看
转自: http://blog.csdn.net/livelylittlefish/article/details/6093903

详细参考: http://blog.csdn.net/cocoonyang/article/details/48135515

在 VS 环境中,我们可以顺利的编译、生成程序。究其原因,是因为 VS 的 IDE 本身已经配置好了编译程序所需的 executable file , include files 和 library 的路径。以 VS2005 为例,在其 IDE 环境中,通过 tools->options->Projects and Solutions->VC++ Directories ,即可查看已经配置好的 Executable files , Include files 和 Library files 。

我们知道, VS 也提供了命令行,那么,该如何配置,才能通过命令行编译、生成程序?

本文以 VS2005 为例,操作系统为 windows XP ,且笔者的机器中安装了 ACE , Boost , cppunit 等软件或库。 VS 及这些软件或库的安装目录如下。

D:/Program Files/Microsoft Visual Studio 8

E:/opensource/ACE-5.6.4/ACE_wrappers

E:/opensource/boost_1_40_0

E:/opensource/cppunit-1.12.1


1. 方法 1 :手动配置

下文的操作都是通过直接通过“系统 -> 属性 -> 高级 -> 环境变量 ”来添加或修改的,以便于立即生效。

(1) 添加公共变量

VSInstallDir=D:/Program Files/Microsoft Visual Studio 8

VCInstallDir=D:/Program Files/Microsoft Visual Studio 8/VC

FrameworkDir=C:/WINDOWS/Microsoft.NET/Framework

FrameworkVersion=v2.0.50727


(2) 修改 path 变量

在用户 path 变量后面添加如下路径:

%VCInstallDir%/BIN;

%VCInstallDir%/PlatformSDK/bin;

%VSInstallDir%/Common7/IDE;

%VSInstallDir%/Common7/Tools;

%VSInstallDir%/Common7/Tools/bin;

%VSInstallDir%/SDK/v2.0/bin;

%FrameworkDir%/%FrameworkVersion%;

%VCInstallDir%/VCPackages;


(3) 添加 INCLUDE 变量

%VCInstallDir%/ATLMFC/INCLUDE;

%VCInstallDir%/INCLUDE;

%VCInstallDir%/PlatformSDK/include;

%VSInstallDir%/SDK/v2.0/include;

%ACE_ROOT%;

%BOOST_1_40_ROOT%;

%CPPUNIT_ROOT%/include ;


(4) 添加 LIB 变量

%VCInstallDir%/ATLMFC/LIB;

%VCInstallDir%/LIB;

%VCInstallDir%/PlatformSDK/lib;

%VSInstallDir%/SDK/v2.0/lib;

%ACE_ROOT%/lib;

%BOOST_1_40_ROOT%/stage/lib;

%CPPUNIT_ROOT%/lib ;


其中,

ACE_ROOT=E:/opensource/ACE-5.6.4/ACE_wrappers
BOOST_1_40_ROOT=E:/opensource/boost_1_40_0
CPPUNIT_ROOT=E:/opensource/cppunit-1.12.1


当然,这几个变量是已经配置好的。

方法 2 :自动配置

如果想省事,我们可以修改并执行以下 bat 文件,该文件会完成 VS2005 的环境变量的设置。

D:/Program Files/Microsoft Visual Studio 8/Common7/Tools /vsvars32.bat

文件修改前的内容如下,

@SET VSINSTALLDIR =D:/Program Files/Microsoft Visual Studio 8
@SET VCINSTALLDIR =D:/Program Files/Microsoft Visual Studio 8/VC
@SET FrameworkDir =C:/WINDOWS/Microsoft.NET/Framework
@SET FrameworkVersion =v2.0.50727
@SET FrameworkSDKDir =D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0

@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.

@rem
@rem Root of Visual Studio IDE installed files.
@rem
@set DevEnvDir=D:/Program Files/Microsoft Visual Studio 8/Common7/IDE

@set PATH =D:/Program Files/Microsoft Visual Studio 8/Common7/IDE;D:/Program Files/Microsoft Visual Studio 8/VC/BIN;D:/Program Files/Microsoft Visual Studio 8/Common7/Tools;D:/Program Files/Microsoft Visual Studio 8/Common7/Tools/bin;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/bin;C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;D:/Program Files/Microsoft Visual Studio 8/VC/VCPackages;%PATH%
@set INCLUDE =D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/INCLUDE;D:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/include;%INCLUDE%
@set LIB =D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB;D:/Program Files/Microsoft Visual Studio 8/VC/LIB;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/lib;%LIB%
@set LIBPATH =C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB

@goto end

:error_no_VSINSTALLDIR
@echo ERROR: VSINSTALLDIR variable is not set.
@goto end

:error_no_VCINSTALLDIR
@echo ERROR: VCINSTALLDIR variable is not set.
@goto end

:end


如果不修改该文件,运行完 vsvars32.bat 文件,只能通过命令行编译、生成一般的 C/C++ 程序;所以,如果程序是基于诸如 ACE 、 Boost 等库的程序,则编译、生成仍然会失败,因为 vsvars32.bat 文件只是设置了一些一般的 C/C++ 程序所需要的头文件和库目录。因此,为了能够编译 ACE 、 Boost 和 CppUnit 的程序,需要修改 vsvar32.bat 文件,修改如下

@SET VSINSTALLDIR =D:/Program Files/Microsoft Visual Studio 8

@SET VCINSTALLDIR =D:/Program Files/Microsoft Visual Studio 8/VC
@SET FrameworkDir =C:/WINDOWS/Microsoft.NET/Framework
@SET FrameworkVersion =v2.0.50727
@SET FrameworkSDKDir =D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0
@SET ACE_ROOT=E:/opensource/ACE-5.6.4/ACE_wrappers
@SET BOOST_1_40_ROOT=E:/opensource/boost_1_40_0
@SET CPPUNIT_ROOT=E:/opensource/cppunit-1.12.1

@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.

@rem
@rem Root of Visual Studio IDE installed files.
@rem
@set DevEnvDir=D:/Program Files/Microsoft Visual Studio 8/Common7/IDE

@set PATH =D:/Program Files/Microsoft Visual Studio 8/Common7/IDE;D:/Program Files/Microsoft Visual Studio 8/VC/BIN;D:/Program Files/Microsoft Visual Studio 8/Common7/Tools;D:/Program Files/Microsoft Visual Studio 8/Common7/Tools/bin;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/bin;C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;D:/Program Files/Microsoft Visual Studio 8/VC/VCPackages;%PATH%
@set INCLUDE =D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/INCLUDE;D:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/include; %ACE_ROOT%;%BOOST_1_40_ROOT%;%CPPUNIT_ROOT%/include ; %INCLUDE%
@set LIB =D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB;D:/Program Files/Microsoft Visual Studio 8/VC/LIB;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/lib; %ACE_ROOT%/lib;%BOOST_1_40_ROOT%/stage/lib;%CPPUNIT_ROOT%/lib ; %LIB%
@set LIBPATH =C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB

@goto end

:error_no_VSINSTALLDIR
@echo ERROR: VSINSTALLDIR variable is not set.
@goto end

:error_no_VCINSTALLDIR
@echo ERROR: VCINSTALLDIR variable is not set.
@goto end

:end


红色部分即为添加的内容。

Appendix : 笔者机器上的环境变量

C:/Documents and Settings/zubo.yu/Desktop>echo %PATH%
C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;D:/Program Files/Cppcheck/;C:/Program Files/
Rational/ClearCase/bin;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/
Rational/common;D:/Program Files/TortoiseSVN/bin;D:/Program Files/UltraEdit/;E:/opensource/ACE-5.6.4
/ACE_wrappers/lib;D:/Program Files/Microsoft Visual Studio 8/VC/BIN;D:/Program Files/Microsoft Visua
l Studio 8/VC/PlatformSDK/bin;D:/Program Files/Microsoft Visual Studio 8/Common7/IDE;D:/Program File
s/Microsoft Visual Studio 8/Common7/Tools;D:/Program Files/Microsoft Visual Studio 8/Common7/Tools/b
in;D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/bin;C:/WINDOWS/Microsoft.NET/Framework/v2.0.5
0727;D:/Program Files/Microsoft Visual Studio 8/VC/VCPackages;

C:/Documents and Settings/zubo.yu/Desktop>echo %INCLUDE%
D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/INCLUDE;D:/Program Files/Microsoft Visual Studi
o 8/VC/INCLUDE;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include;D:/Program Files/Mi
crosoft Visual Studio 8/SDK/v2.0/include;E:/opensource/ACE-5.6.4/ACE_wrappers;E:/opensource/boost_1_
40_0;E:/opensource/cppunit-1.12.1/include

C:/Documents and Settings/zubo.yu/Desktop>echo %LIB%
D:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB;D:/Program Files/Microsoft Visual Studio 8/
VC/LIB;D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;D:/Program Files/Microsoft Visu
al Studio 8/SDK/v2.0/lib;E:/opensource/ACE-5.6.4/ACE_wrappers/lib;E:/opensource/boost_1_40_0/stage/l
ib;E:/opensource/cppunit-1.12.1/lib


画线部分为手动配置中新加入的目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cl visual studio