2.下面详细介绍下cl命令:

cl.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF)

对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。

注意,所有编译器选项都区分大小写。

用法如下:

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

option : 一个或多个 CL 选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个正斜杠 (/) 或一个短划线 (-) 指定的。如果某个选项带有参数,则该选项的说明指定在选项和参数之间是否允许有空格。选项名(/HELP 选项除外)区分大小写。 CL:

/c : 编译但不链接

/Zs : 检查语法

/? : 列出编译器选项

/arch : 使用 SSE 或 SSE2 指令生成代码

/arch:SSE2

/clr : 启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件

/F : 设置堆栈大小 | 此选项设置程序堆栈大小(以字节为单位)。如果不使用此选项,堆栈大小默认为 1 MB,比如:/F 100

/Fe : 重命名可执行文件

/Feexe.exe

/G7 :针对 Pentium 4 或 Athlon 优化代码。

/GA :优化 Windows 应用程序的代码

/GL :启用全程序优化

/Gm :启用最小重新生成

/HELP :列出编译器选项

/I :在目录中搜索包含文件 | 指定源文件目录 include,例如:/I "e:\VC\include"

/link : 将指定的选项传递给 LINK

/MD : 使用 MSVCRT.lib 创建多线程 DLL

/ML : 使用 LIBC.lib 创建单线程可执行文件

/MT : 使用 LIBCMT.lib 创建多线程可执行文件

/O1 : 创建小代码

/O2 : 创建快速代码

/Os : 代码大小优先

/W : 设置警告等级

/W3

/Ot : 代码速度优先

/LD : 创建动态链接库

/Ox : 使用最大优化

/TC : 指定 C 源文件

/TP : 指定 C++ 源文件

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

file : 一个或多个源文件、.obj 文件或库的名称。CL 编译源文件并将 .obj 文件和库的名称传递给链接器。有关更多信息,请参见 CL 文件名语法。

lib : 一个或多个库名。CL 将这些名称传递给链接器。

command-file: 包含多个选项和文件名的文件。有关更多信息,请参见 CL 命令文件。

link-opt : 一个或多个链接器选项。CL 将这些选项传递给链接器

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

精典用法:

cl *.cpp /G7 /MD /Ox /Ot /W3 /c /EHsc /I"G:\Visual C++\VC98\PlatformSDK\Include"

3.说道cl,不得不说一下另一个工具link

link是将通用对象文件格式 (COFF) 对象文件和库链接起来以创建 32 位可执行 (.exe) 文件或动态链接库 (DLL) 的 32 位工具。

link用法如下:

/ALIGN : 指定每一节的对齐方式

/ALIGN : 选项指定程序线性地址空间中每一节的对齐方式。number 参数以字节为单位,并且必须是2 的幂。默认值是 4K (4096)。如果对齐方式产生无效的图像,则链接器发出警告。除非正在编写诸如设备驱动程序的应用程序,否则应不需要修改对齐方式。

/DLL : 生成 DLL

/DRIVER : 创建 Windows NT 核心模式驱动程序

/EXETYPE : 生成虚拟设备驱动程序

/EXETYPE:DYNAMIC 创建动态加载的虚拟设备驱动程序。

/EXETYPE:DEV386 创建静态加载的虚拟设备驱动程序。这是 /EXETYPE 的默认值

/INCREMENTAL : 控制增量链接

/LARGEADDRESSAWARE : 通知编译器应用程序支持大于 2 GB 的地址

/LIBPATH : 允许用户重写环境库路径

/LIBPATH:"e:\VC\LIB" /LIBPATH:"e:\DX\LIB"

/MACHINE : 指定目标平台

/MACHINE:{AM33|ARM|EBC|IA64|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|SH3|SH3DSP|SH4|SH5|THUMB|X86| X64/*8.0版本*/}

/MACHINE : X86

/NOENTRY : 创建纯资源 DLL,创建纯资源 DLL 时要求 /NOENTRY 选项。

/OPT : 控制 LINK 优化如果生成仅运行于 Windows NT 或 Windows 2000 上的组件,则应使用 /OPT:NOWIN98。

/SUBSYSTEM : 指定子系统 {CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|

EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]

/OUT : 指定输出文件名,比如:/OUT:Hello.exe

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

精典用法:

link *.obj rc.res /LIBPATH:"G:\Visual C++\lib" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib        gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.Lib

4.另外:rc 是资源编译

/l 列出资源用的区域性

0x804 中国

0x409 美国

用法:rc /l 0x804 file.rc

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

MFC 开发如下:

编译源代码:

cl *.cpp /Ox /Ot /G7 /D "WIN32" /D "_WINDOWS" /D "_AFXDLL" /EHsc /MD /arch:SSE2 /W3 /c

资源编译 :

rc /l 0x804 winmfc.rc

链接 :

link *.obj WinMFC.res /out:WinMFC.exe /OPT:NOWIN98 /SUBSYSTEM:WINDOWS /MACHINE:X86

库文件 c语言 编译器,抽取VS文件组成类GCC的编译器,并编译C程序为dll动态链接库...相关推荐

  1. 易语言从c盘开始搜索文件,易语言全盘查找指定文件并返回地址

    易语言全盘查找指定文件并返回地址,类似于全盘扫描文件,可以学习一下 .版本 2 .支持库 iext .子程序 列表, , , ***寻找目录下的所有子目录** .参数 路径, 文本型 .参数 查找的文 ...

  2. 创建ogg文件 c语言,Ogg音频格式文件的样本构造(CVE-2018-5146)

    原标题:Ogg音频格式文件的样本构造(CVE-2018-5146) *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 下面的所有分析都是在Firefox 59.0 32位上进行的.由于笔者是刚入 ...

  3. c语言头文件_C语言学习之头文件的原理和使用方法

    头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享.有两种类型的头文件:程序员编写的头文件和编译器自带的头文件. 在程序中要使用头文件,需要使用 C 预处理指令 #i ...

  4. r语言读取C盘的csv文件,R语言开发之CSV文件的读写操作实现

    在R中,我们可以从存储在R环境外部的文件读取数据,还可以将数据写入由操作系统存储和访问的文件.这个csv文件应该存在于当前工作目录中,以方便R可以读取它, 当然,也可以设置自己的目录,并从那里读取文件 ...

  5. c语言处理单色bmp文件,C语言处理单色BMP文件

    使用C 语言获得黑白BMP文档的参数而不使用其他函数. 使用C处理单色BMP照片 首先要了解BMP文件的格式: BMP图片的扫描方式 是从左到右,从下至上,对每个像素取值.一个扫描行所占的字节数为4的 ...

  6. 合并excel文件 C语言,多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数...

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  7. dbc文件c语言解析标准,DBC文件解析CAN信息

    <DBC文件解析CAN信息>由会员分享,可在线阅读,更多相关<DBC文件解析CAN信息(15页珍藏版)>请在人人文库网上搜索. 1.DBCCAN数据包-基于CANAPE,打开C ...

  8. c语言搜索全盘文件,c语言全盘搜索指定文件的实例代码

    #include #include void FindFile(char* ,char* ); int count=0;//统计文件数 char fname[32]; #define BUFSIZE ...

  9. c语言文件怎么重命名文件,c语言中 如何删除文件和重命名文件,举个例子可以么...

    满意答案 takurachin 2013.05.27 采纳率:45%    等级:12 已帮助:8700人 函数名: rename 功 能: 重命名文件 用 法: int rename(char *o ...

  10. c语言fopen函数读dat文件,C语言 从a.dat文件读入数据存入b.dat文件里面(以字符形式)...

    满意答案 yaokowbiw7 2016.05.09 采纳率:50%    等级:10 已帮助:516人 #include #define nodup(a) if(a != c) { fputc(a, ...

最新文章

  1. 8 - 9 template两大功能 : simple_tag、模板继承
  2. 用java程序将GBK字符转成UTF-8编码格式(转)
  3. mysql_表_操作
  4. 【Python学习】 - skimage包
  5. QT5动态创建多个按钮控件并关联信号槽函数
  6. python查天气预报_一个用Python编写抓取天气预报的代码示例
  7. C语言动态链表数据结构实现的学生信息项目
  8. adobe reader XI打开大约十几秒就闪退问题解决方法大全
  9. 视频教程-Excel函数教程(上)-Office/WPS
  10. python 文件内容对比_用python进行文件比对
  11. 探秘西诚慧联巧匠化工安全综合管理平台——实现厂区安全智能管控
  12. NVIDIA TX2 使能CAN模块
  13. 51nod 1526 分配笔名(字典树)
  14. Qt编写地图综合应用60-覆盖物坐标和搜索
  15. 用python找出400多万次KDJ金叉死叉,胜率有多高?附代码
  16. VS Code 2022路线图:大量Spring Boot优化提上日程
  17. 个人博客系统【项目篇】
  18. 当编程语言都变成女孩子,你会不会喜欢她们!
  19. scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等
  20. web开发 简单的html2

热门文章

  1. Java面试题(140多道高频面试题2022版)
  2. Vue3 Echarts散点图+高德地图+卫星地图(二)——Echarts配置散点图高德卫星地图版
  3. 定义多边形类,继承产生矩形类和正多边形类
  4. PDH性能测试之五--待续
  5. 迪杰斯特拉算法(求最短路径)
  6. 2015款java 650b duina_整车推荐:9款5000元级别热销山地车
  7. “开会” 引发的思考
  8. 协作:一份来自RChain的倡议书(上篇)
  9. 正则表达式 Regular Express
  10. 央行最新公布2019支付牌照持牌机构公司列表,共255家(附清单)