VC命令行编译参数介绍

From: http://blog.csdn.net/zhangxinrun/article/details/5797122


CL.exe是控制Microsoft C和C++编译器与链接器的32位工具。编译器产生通用对象文件格式(COFF)对象(.obj)文件。链接器产生可执行文件(.exe)或动态链接库文件(DLL)。

注意,所有编译器选项都区分大小写。   
   
若要编译但不链接,请使用/c。   
   
使用NMAKE生成输出文件。  
   
使用BSCMAKE支持类浏览。  
   
以下是一个完整的编译器选项分类列表。  
   
优化  
   
选项   作用    
/O1   创建小代码    
/O2   创建快速代码    
/Oa   假设没有别名    
/Ob   控制内联展开    
/Od   禁用优化    
/Og   使用全局优化    
/Oi   生成内部函数    
/Op   改善浮点数一致性    
/Os   代码大小优先    
/Ot   代码速度优先    
/Ow   假定在函数调用中使用别名    
/Ox   使用最大优化(/Ob1gity /Gs)    
/Oy   省略框架指针    
   
代码生成  
   
选项   作用    
/clr 启用C++的托管扩展并产生在公共语言运行库上运行的输出文件    
/EH   指定异常处理模型    
/G3   优化代码以优选386处理器。在Visual C++ 5.0中已经停用,编译器将忽略此选项    
/G4   优化代码以优选486处理器。在Visual C++ 5.0中已经停用,编译器将忽略此选项    
/G5   优化代码以优选Pentium    
/GB   与/G6等效;将_M_IX86的值设置为600    
/Gd   使用__cdecl调用约定    
/Ge   激活堆栈探测    
/GF  
/GF   启用字符串池    
/GH   调用挂钩函数_penter    
/GH   调用挂钩函数_pexit    
/GL   启用全程序优化    
/Gm   启用最小重新生成    
/Gr   启用运行时类型信息(RTTI)    
/Gr   使用__fastcall调用约定    
/GS   控制堆栈探测    
/GT   支持使用静态线程本地存储区分配的数据的纤程安全    
/GX   启用同步异常处理    
/Gy   启用函数级链接    
/GZ   使用__stdcall调用约定    
/MD   使用MSVCRT.lib创建多线程DLL    
/MDd 使用MSVCRTD.lib创建调试多线程DLL    
/ML   使用LIBC.lib创建单线程可执行文件    
/MLd 使用LIBCD.lib创建调试单线程可执行文件    
/MT   使用LIBCMT.lib创建多线程可执行文件    
/MTd 使用LIBCMTD.lib创建调试多线程可执行文件    
   
输出文件  
   
选项   作用    
/FA  
/FA   创建列表文件
        设置列表文件名    
/Fd   重命名程序数据库文件    
/Fe   重命名可执行文件    
/Fm   创建映射文件    
/Fo   创建对象文件    
/Fp   指定预编译头文件名    
/FR  
/FR   生成浏览器文件    
/Fx   将插入的代码与源文件合并    
   
调试  
   
选项   作用    
/GS   缓冲区安全检查    
/GZ   与/RTC1相同    
/RTC 启用运行时错误检查    
/Wp64 检测64位可移植性问题    
/Yd   将完整的调试信息放在所有对象文件中    
/Yl   创建调试库时插入PCH引用    
/Z7   生成与C 7.0兼容的调试信息    
/Zd   生成行号    
/Zi   生成完整的调试信息    
   
预处理器  
   
选项   作用    
/AI 指定在解析传递到#using指令的文件引用时搜索的目录    
/c   在预处理期间保留注释    
/D   定义常数和宏    
/E   将预处理器输出复制到标准输出    
/EP 将预处理器输出复制到标准输出    
/Fl 预处理指定的包含文件    
/FU 强制使用文件名,就像它已被传递到#using指令一样    
/I   在目录中搜索包含文件    
/P   将预处理器输出写入文件    
/U   移除预定义宏    
/U   移除所有的预定义宏    
/X   忽略标准包含目录    
/ZI 将调试信息包含在与“编辑并继续”兼容的程序数据库中    
   
语言  
   
选项   作用    
/noBool   取消C++ bool、true和false关键字    
/vd   取消或启用隐藏的vtordisp类成员    
/vmb 对指向成员的指针使用最佳的基    
/vmg 对指向成员的指针使用完全一般性    
/vmm 声明多重继承    
/vms 声明单一继承    
/vmv 声明虚拟继承    
/Za   禁用语言扩展    
/Zc   在/Ze下指定标准行为    
/Ze   启用语言扩展    
/Zg   生成函数原型    
/Zl   从.obj文件中移除默认库名    
/Zp   n   封装结构成员    
/Zs   只检查语法    
   
链接  
   
选项   作用    
/F   设置堆栈大小    
/LD   创建动态链接库    
/LDd   创建调试动态链接库    
/link   将指定的选项传递给LINK    
/MD   使用MSVCRT.lib编译以创建多线程DLL    
/MDd   使用MSVCRTD.lib编译以创建调试多线程DLL    
/ML   使用LIBC.lib编译以创建单线程可执行文件    
/MLd   使用LIBCD.lib编译以创建调试单线程可执行文件    
/MT   使用LIBCMT.lib编译以创建多线程可执行文件    
/MTd   使用LIBCMTD.lib编译以创建调试多线程可执行文件    
   
预编译头  
   
选项   作用    
/Y-   忽略当前生成中的所有其他预编译头编译器选项    
/Yc   创建预编译头文件    
/Yd   将完整的调试信息放在所有对象文件中    
/Yu   在生成期间使用预编译头文件    
/YX   自动处理预编译头    
   
杂项  
   
选项   作用    
@   指定响应文件    
/?   列出编译器选项    
/c   编译但不链接    
/H   限制外部(公共)名称的长度    
/HELP   列出编译器选项    
/J   更改默认的char类型    
/NOLOGO   取消显示登录版权标志    
/QI0f   确保Pentium 0F指令没有问题    
/QIfdiv   FDIV、FPREM、FPTAN和FPATAN指令有缺陷的Intel Pentium微处理器的变通方法    
QIfist   当需要从浮点类型转换为整型时取消Helper函数_ftol的调用    
/showIncludes   在编译期间显示所有包含文件的列表    
/Tc  
/Tc   指定C源文件    
/Tp  
/Tp   指定C++源文件    
/V   设置版本字符串    
/w   设置警告等级    
/w   禁用所有警告    
/Wall   启用所有警告,包括默认情况下禁用的警告    
/WL   在从命令行编译C++源代码时启用错误信息和警告消息的单行诊断    
/Zm   设置编译器的内存分配限制    
CL   命令行使用下列语法:  
   
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]  
   
下面说明CL命令的输入项意义    
   
option   一个或多个CL选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个正斜杠(/)或一个短划线(–)指定的。如果某个选项带有参数,则该选项的说明指定在选项和参数之间是否允许有空格。选项名(/HELP选项除外)区分大小写。有关更多信息,请参阅CL选项的顺序。  
   
file   一个或多个源文件、.obj文件或库的名称。CL编译源文件并将.obj文件和库的名称传递给链接器。有关更多信息,请参阅CL文件名语法。
   
lib   一个或多个库名。CL将这些名称传递给链接器。   

您可以指定任意数目的选项、文件名和库名,条件是命令行上的字符数不超过1024,该限制是操作系统指定的。   
   
command-file   包含多个选项和文件名的文件。有关更多信息,请参阅CL命令文件。    
   
link-opt   一个或多个链接器选项。CL将这些选项传递给链接器。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在linux 5上配置戴尔MD3220i

http://zh.community.dell.com/techcenter/storage/f/150/t/2773.aspx转载于:https://blog.51cto.com/xs2013/1298568

Linux 系统应用编程——进程间通信(下)

在前面,我们学习了传统的进程间通信方式——无名管道(pipe)、有名管道(fifo)和信号(signal)。 下面我们来学习 System V IPC 对象: 1、共享内存(share memory&#xff0…

VC程序员常用工具篇

1. IDE:钟情于VC6.0,但是也感觉Visual Studio2008和2010的强大,可能迟早得转到VS高版本上来。在安装VC6.0的时候记得安装sp6补丁和msdn(MSDN_1.5_精简安装版 )2. 辅助: Visual Assist,喜欢它代码自动补全&a…

Hibernate的批量操作

批量插入 Hibernate强制开启了一级缓存,缓存空间是有限的,如果批量操作的SQL语句太多,就会运行失败(内存溢出), 因此在批量操作的时候,每执行一批SQL语句,都需要刷新缓存&#xff0c…

.balignl 16,0xdeadbeef浅析

http://zqwt.012.blog.163.com/blog/static/12044684201031102956976/ 最近在分析u-boot的源代码,看到这一行: .balignl 16, 0xdeadbeef不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢&am…

使用maven导入任意jar包

http://mvnrepository.com/ 我这里,因为是spark1.5.2版本。 保存,maven会自动下载jar包到本地仓库。 转载于:https://www.cnblogs.com/lchzls/p/6281764.html

Linux下静态IP地址的设置及TFTP服务的搭建

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP承载在UDP上,提供不可靠的数据流传输服务,…

ASCII码表

From: http://www.96yx.com/tool/ASC2.htm ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理…

inotify

Linux 2.6内核中的文件系统变化通知机制 一、 引言 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备…

bzoj 3924 幻想乡战略游戏

题目大意: 有边权点权的树,动态修改点权 每次修改后求带权重心x (\(minimize\) \(S\sum_i val[i]*dist[x][i]\)) 分析: 从暴力找突破口: 对于边x,y,设长度为len,切断后x半边树权值和为\(w_1\),y…

Linux 系统应用编程——网络编程(服务器模型)

在网络通信过程中,服务端通常需要处理多个客户端。由于多个客户端的请求可能会同时到来,服务器端可采用不同的方法来处理。总体上来说,服务器端可采用两种模型来实现:循环服务器模型和并发服务器模型。 循环服务器模型是指服务器端…

makefile中的patsubst, wildcard, notdir

From:http://blog.sina.com.cn/s/blog_60cbc1700100nuhz.html 1、wildcard : 扩展通配符 2、notdir : 去除路径 3、patsubst :替换通配符 例子: 建立一个测试目录,在测试目录下建立一个名为sub的子目录 $ mkdir test $ cd test $…

搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)

在动手安装之前,首先要确定硬件,系统,准备安装软件的版本,确定这些软硬件之间是否相互支持或兼容。本文安装的主要环境和软件如下: Ubuntu16.10CUDA8.0(cudnn5.1,CNMEM)Theano0.8.2Tensorflow0.11.0rc1Keras1.1.0 显卡…

Statspack安装心得

一,在win7下应该以管理员身份运行,sqlplusw 二,安装前要要执行如下代码,创建表空间 SQL> create tablespace perfstat 2datafile d:\oracle\oradata\eygle\perfstat.dbf 3size 500M 4extent management local; eygle为你的数据…

Linux 系统应用编程——网络编程(基础篇)

一、网络体系结构 1、OSI模型和TCP/IP 模型 网络体系结构指的是网络的分层结构以及每层使用的协议的集合。其中最著名的就是OSI协议参考模型,他是基于国际标准化组织(OSI)的建议发展起来的。它分为7个层次:应用层、表示层、会话层…

函数的定义与调用

1.理解函数 函数是一段代码块,它只定义一次,但可以被执行或调用任意次。函数可以有参数,实参(argument)和形参(parameter),实参是在运行时的函数调用时传入的参数,形参是…

C++中函数的默认参数

使用方法: (1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。注意事项: &…

Linux 系统应用编程——网络编程(socket编程)

二、网络编程基础 1、套接字概述 套接字就是网络编程的ID。网络通信,归根到底还是进程间的通信(不同计算机上的进程间的通信)。在网络中,每一个节点(计算机或路由器)都有一个网络地址,也就是IP地…

Linux 代码格式化工具 indent

以下是我最喜欢的代码格式化脚本&#xff1a; #!/bin/shif [ $# -lt 1 ]; thenecho "Usage: $0 <file>"exit 1fi# format a source file(*.c, *.h)formatSrcfile(){indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ss -nsaf -nsai -nsaw -bl -bli 0 $…

Android处理ListView中的Item中的Button按钮不能点击的问题

问题描述&#xff1a;ListView列表中的Button按钮按钮不能点击 解决办法&#xff1a;在ListView中的Item项的布局文件中加上&#xff1a;android:descendantFocusability"blocksDescendants"&#xff0c;问题解决。