zoukankan      html  css  js  c++  java
  • 常用cl命令参数解释

    紧接前文,第一行cl命令如下:

    1>  cl /c /IC:...include /ZI /nologo- /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"DebugHelloWorld.pch" /Fo"Debug\" /Fd"Debugvc110.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp
    1>cl : Command line warning D9035: option 'nologo-' has been deprecated and will be removed in a future release

    找到了MSDN的文档:

    http://msdn.microsoft.com/en-us/library/vstudio/9s7c9wdw.aspx

    也可以在Developer Command Prompt for VS2012终端窗口中输入cl /? 获得帮助信息。


    /c 代表只编译不链接。

    /I 指定头文件的目录

    /C 在编译期间保留代码注释,这里和/I连在一起使用,/IC

    首先介绍一个概念,VC中有个PDB文件,全称是Program Database,用来存放程序信息的小的数据库文件。

    编译Debug版本时,调试信息需要保留,我们可以选择直接将调试信息写到.obj文件中,或者存到.pdb文件中。

    /Z7 不产生.pdb文件,将所有调试信息存入.obj文件中

    /Zi和/ZI 都产生.pdb文件,不过/ZI支持"编辑继续调试"功能, (the edit and continue feature), 看上去更酷,但是我从来没有用过这个功能。

    /ZI有一些边际效应,会禁止#pragma optmize 指令,也不能和/clr一起用。

    /nologo- 已经无效,自己生成命令行的时候,没必要用了。

    /W3 也中警告级别,VC提供了很多警告级别,参考http://msdn.microsoft.com/en-us/library/vstudio/thxezb7y.aspx

    自己编译的话,直接用/Wall最好。

    /WX- 不太明白为什么有 - 号,(估计是和:NO的意思相同,也就是不启用该功能), /WX的意思是将warning转变成error,这样强迫消除所有的warning,如果和/Wall一起使用,那是最好的。

    /sdl 是对代码进行安全检查,如果发现相关警告,转变成错误输出

    /Od 禁止优化

    /Oy- 禁止该选项,该选项如果没有 - 号,则会在x86上编译时忽略frame-pointer,起到加速程序的作用。 frame-pointer,我暂时不知道是啥。

    /D 预处理定义,后面可以跟不同的参数都是宏啊,比如

    /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE


    /Gm 启用最小化重新编译, VC用.idb保留了上次编译的缓存信息,包括文件依赖关系。下次编译时可以使用.idb文件用来检查,跳过不需要重新编译的文件。

    /EH 异常处理模式,后面可以接一些参数:http://msdn.microsoft.com/en-us/library/vstudio/1deeycx5.aspx

    通常都用/EHsc

    /RTC 运行时错误检查,参考:http://msdn.microsoft.com/en-us/library/vstudio/8wtf2dfz.aspx

    /MDd 和上面一个都很重要,使用Debug版本的多线程运行时动态库,参考:http://msdn.microsoft.com/en-us/library/vstudio/2kzt1wy3.aspx

    /GS 缓冲区安全检查

    看到这里,发现cl其实参数很多很多,VC提供了默认的选项,一般都够用。不过仔细分析一下,还是能够对cl的特性了解不少,对于提高编译器的认识还是很有好处的。

    暂时到这里,改日继续。

  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/riskyer/p/3238983.html
Copyright © 2011-2022 走看看