深入探究VC —— 编译器cl.exe(1)
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
深入探究VC —— 编译器cl.exe(1)的更多相关文章
- 深入探究VC —— 编译器cl.exe(2)
这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂.也是最常用的.下面介绍一些常用的编译选项: 1.代码生成有关 这些选项将影响编译完成后生成 ...
- C语言编译器CL.exe
下载地址CL.7z版权问题:仅供学习交流,请于24小时内删除,本人不承担版权问题… 基本使用: 1.解压缩,例如解压缩到E盘根目录下 2.打开cmd命令行界面(快捷方式win+R输入cmd回车)cd命 ...
- 链接器link.exe 编译器cl.exe 资源编译器rc.exe
原文地址:https://blog.csdn.net/biggbang/article/details/24433065 1.cl.exe文件是Visual C\C++的编译器,它将程序源代码文件编译 ...
- 深入探究VC —— 链接器link.exe(4)
在程序编译完成后,生成的文件是以.obj为扩展名的对象文件,link.exe是将这些对象文件与库链接起来以创建可执行文件或动态链接库文件的工具. link.exe的输入文件包括obj文件.lib文件. ...
- 深入探究VC —— 资源编译器rc.exe(3)
Windows应用程序中,图标.菜单.畏途.图标.工具条.对话框等是以资源的形式存在的.开发人员也可以自定义资源类型.如果一个程序使用了资源,那么它在构建时需要对资源进行编译.程序所使用的资源会在资源 ...
- Notepad++中调用cl.exe编译器(Windows)
Notepad++中调用cl.exe编译器(Windows) 近来在notepad++中写代码,写完后总是习惯性的想去VS里面编译一下,看看代码是否有误.但有时候一些零碎的小文件总是懒得再VS中打开, ...
- vc中Error spawning cl.exe错误的解决方法.
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过.很多人的 选择是重装, ...
- 通过命令行使用cl.exe编译器
转载http://www.cnblogs.com/mizhongqin/archive/2013/03/11/cmd_cl-exe_vs2010.html 与在IDE中编译相比,命令行模式编译速度更快 ...
- vc中nmake.exe cl.exe 的使用
首先简单介绍一下程序是如何编译链接的.程序写好之后,我们进行编译和链接来产生可执行程序.这时候,编译器为了完成编译和链接,需要知道很多信 息.比如要编译的文件是哪一个,使用哪些编译选项进行编译,编译好 ...
随机推荐
- Asp.net 提供程序模型
需要说明一下几点 1.什么是提供程序? 2.ASP.NET 4.5 中的提供程序 3.配置提供程序 有一下几种存储状态的方式 1.应用程序状态 2.会话状态 3.高速缓存状态 4.cookie 5.查 ...
- margin 属性的相关问题
1.margin 的IE6 双边距问题 问题描述:浮动的块挨边框的时候会产生双倍的边距 解决方案: 1.增加display:inline; 2.去除float属性 2.margin 的重叠问题 CSS ...
- BZOJ 2818 GCD(欧拉函数)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37161 题意:gcd(x, y) = 质数, 1 <= x, ...
- List(双向链表)
List是一种双向链表结构,可以从第一个元素开始删除.插入,也可以从最后一个元素删除.插入,下面介绍一下 List 中常用的几个函数: 一.List 中的 begin 和 end 函数 : 和其他几种 ...
- javascript 绝对路径工具类
// #region 取虚拟目录示例代码 //获取网站虚拟目录名称 function GetVirtualDirectoryName() { var pathname = removeFirstSla ...
- Android 调用webservice faultactor 错误
1.错误:02-05 09:56:17.266: E/WebServiceUtil(801): --- 内部异常堆栈跟踪的结尾 ---' faultactor: 'null' detail: org. ...
- php实现简单的上一页下一页
思路整理: 现在好多人用id的增1和减1实现上一篇和下一篇但是难道文章ID不会断了吗所以你要知道上个ID和个ID是多少就OK了那怎么解决这个问题呢,很简单例子:假如这篇文章的ID200 <a h ...
- Mongodb PHP开发类库
<?php /** * Mongodb 基本操作API,支持基本类似关系统型数据库的操作接口 * * @version 1.0 * * [说明] * * 1:该版本API实现了 Mongodb ...
- codeforces 616E. Sum of Remainders 数学
题目链接 给两个数n, m. 求n%1+n%2+.......+n%m的值. 首先, n%i = n-n/i*i, 那么原式转化为n*m-sigma(i:1 to m)(n/i*i). 然后我们可以发 ...
- hihocoder #1260 : String Problem I
题目链接 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 我们有一个字符串集合S,其中有N个两两不同的字符串. 还有M个询问,每个询问给出一个字符串w,求有多少S中的 ...