深入探究VC —— 编译器cl.exe(2)

简介: 这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂、也是最常用的。下面介绍一些常用的编译选项: 1、代码生成有关 这些选项将影响编译完成后生成的机器代码:     2、调试有关 与调试有关的编译选项如下图,/Z7、/Zi、/ZI这...

这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂、也是最常用的。下面介绍一些常用的编译选项:

1、代码生成有关

这些选项将影响编译完成后生成的机器代码:

 

 

2、调试有关

与调试有关的编译选项如下图,/Z7、/Zi、/ZI这三个选项是对程序进行调试时所必需的选项,同时注意,在生成调试版本的程序时,需要指定/Od选项以禁用优化:

 

3、程序优化有关

与程序优化有关的选项如下图,优化选项将影响编译器对代码的优化,最选择代码体积最小还是选择运行速度最快等需要使用这些选项:

 

4、输出文件有关

与生成的输出文件有关的选项如下图,输入文件在参数中需要使用字符串来指定其路径,字符串使用双引号("")括起来,如/Fd "BIN//"。注意字符串的转意字符,如果需要使用单斜杠表示文件路径,需要使用双杠("//"):

 

5、预处理器有关

与预处理器有关的选项如下图,这些选项将影响预处理器的运行,比如通过/D选项可以达到与在源代码中使用#define定义基本相同的效果:

 

6、链接有关

与链接有关的选项如下图,编译器可以调试链接器,向链接器传递调用参数。/link选项完成这项功能,还可以指定堆栈的大小,创建动态链接库等:

 

7、预编译有关

与预编译有关的选项如下图,这些编译选项会影响预编译结果:

 

8、语言有关

与语言有关的选项如下图,比如/Za、/Ze选项表示是否支持微软的语言扩展,还是只支持标准 C/C++。/Zp选项可以指定结构中的成员对齐方式,这将影响到生成的程序中结构体的大小。在一些协议头的处理中,/Zp选项非常有用:

 

9、其他选项

这些选项的影响是多方面的,不太好分类。包括显示帮助信息、设置警告等。

 

 

关于VC编译器参数与选项方面的知识就是这此了,当然这里只是大多数VC/C++编译器常用的选项,并不是全部编译选项。

(如果需要使用到编译器其他的选项,请自行查阅MSDN)

另外,不足的地方希望大家能够补充说明!

 


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

目录
相关文章
|
Docker 容器
Docker Compose学习之docker-compose.yml编写规则 及 实战案例
本文是博主学习docker compose 规则的记录,希望对大家有所帮助。
609 0
Docker Compose学习之docker-compose.yml编写规则 及 实战案例
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
855 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
11月前
|
前端开发 JavaScript API
无界 SaaS,V 加激励制度与数据流量价值
无界 SaaS 是一个结合 V 加激励制度与数据流量价值的综合性平台,涉及后端开发、前端开发、数据库设计、API 接口、区块链技术和支付系统等多个技术领域。 该框架为开发者提供了从概念到实现的全面指导。
|
关系型数据库 MySQL 数据库
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
1801 1
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
1564 2
|
Ubuntu Linux 网络安全
在Linux中,如何配置VPN连接?
在Linux中,如何配置VPN连接?
|
机器学习/深度学习 数据采集 人工智能
数据工作中的自动化与AI融合实践
【8月更文第13天】随着大数据和人工智能(AI)技术的发展,数据处理和分析变得越来越重要。本文将探讨如何通过自动化工具和AI技术来优化数据处理流程,包括数据清洗、特征工程、模型训练以及结果可视化等步骤。我们将使用Python编程语言及其相关库(如Pandas、Scikit-learn和TensorFlow)作为实现手段。
828 0
|
人工智能 自然语言处理 安全
谷歌Gemma 大模型 部署搭建本地
谷歌 Gemma 是一个基于 Python 的图像分析工具,提供快速和准确的物体检测、定位、分类和风格迁移功能。它使用 TensorFlow Lite 模型,使它可以快速运行在移动设备上。
330 0
|
存储 Java
定义和使用结构体数组
定义和使用结构体数组
|
C++
[Qt5&VS] VS编译生成Qt的ui_头文件
[Qt5&VS] VS编译生成Qt的ui_头文件
747 0