网站首页 > 物联资讯 > 技术分享

深入探究VC ―― 编译器cl.exe(1)

2016-09-28 00:00:00 广州睿丰德信息科技有限公司 阅读
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接

cl.exe的功能是将源代码文件编译为可提供链接器使用的obj对象文件。cl.exe命令行参数形式如下:

CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]

各命令行参数的意义如下 :

1、option

命令行中的"option"是指一个或多个编译选项。在指定选项时,需要在选项前加正斜杠(/)或一个短划线(-)。有一些选项还会带有参数,使用":"来指定选项的参数。比如"/sybsystem:windows,5.0"是一个编译选项,表示可执行程序执行所依赖的子系统是Windows(Win32图形用户界面的应用程序),版本最低5.0(即Windows 2000)。选项名区分大小写(/HELP选项除外),而且除了/link选项之外,其他选项是顺序没有要求。在编译时所指定的所有选项都将应用于用户指定的所有源文件。option命令行参数是可选。

2、file

命令行中的"file"是一个或多个所需要编译的源文件,也可以是.obj文件或库文件。cl.exe编译源文件并将.obj文件和库的名称传递给编译器。file参数是编译器的必须参数。

3、lib

该选项用于指定一个或多个库名。cl.exe直接将这些名称传递给链接器。lib是cl.exe的可选参数。

4、command-file

它包含多个选项和文件名的文件,为可选参数。

5、link-opt

一个或多个链接器选项。CL将这些选项传递给链接器,也是可选参数。

举例Hello World:

// File   Name: Hello.c
// Description: First Win32 Application
// by Koma 2009-11-18 22:05

#include <windows.h>
#pragma comment(lib,"user32.lib")

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pszCmdLine, int cmdShow)
{
    MessageBox(NULL,"Hello World !","Test",MB_OK);
    return 0;
}

那么编译该源文件命令行下:

cl /O2 /Fa /Gz /Fo Hello.c

"Hello.c"前面的都是编译选项(即option参数),"Hello.c"是源文件(file参数),没有使用lib、command-file、link-opt等命令行参数。

在命令行编译前,需要设置你的环境变量,如下所示:

 


include    C:/Program Files/Microsoft Visual Studio/VC98/Include

lib           C:/Program Files/Microsoft Visual Studio/VC98/Lib

path       C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin;C:/Program Files/Microsoft Visual Studio/VC98/Bin

(如果被修改过的并不是默认如此,设置完成需要重启电脑)

 

好了,关于编译器命令行参数暂时就学习到这了~~~


本文来自CSDN博客,转载请标明出处:http://www.cnblogs.com/lidabo/admin/file:///C:/Documents%20and%20Settings/Administrator/桌面/MFC-20100806文章/MFC-20100806文章/深入探究VC%20——%20编译器cl_exe(1)%20-%20zxzqwq2009的专栏%20-%20CSDN博客.htm

RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成