• Visual C++ 编译器选项


    优化

    /O1 创建小代码
    /O2 创建快速代码
    /Oa 假设没有别名
    /Ob 控制内联展开
    /Od 禁用优化
    /Og 使用全局优化
    /Oi 生成内部函数
    /Op 改善浮点数一致性
    /Os 代码大小优先
    /Ot 代码速度优先
    /Ow 假定在函数调用中使用别名
    /Ox 使用最大优化 (/Ob2gity /Gs)
    /Oy 省略框架指针

    代码生成

    /arch 使用 SSE 或 SSE2 指令生成代码
    /clr 启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件
    /EH 指定异常处理模型
    /G3 优化代码以优选 386 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项
    /G4 优化代码以优选 486 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项
    /G5 优化代码以优选 Pentium
    /G6 优化代码以优选 Pentium Pro、Pentium II 和 Pentium III 处理器
    /G7 针对 Pentium 4 或 Athlon 优化代码。
    /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 将调试信息包含在与“编辑并继续”兼容的程序数据库中

    语言

    /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 指定预编译头内存分配限制

    请参见

  • 相关阅读:
    php安全模式笔记
    ./configure,make,make install的作用(转)
    composer自动载入类库的方式
    Specified key was too long; max key length is 1000 bytes
    海量数据中找出前k大数(topk问题)
    斐波那契数列n项的值。(递归和非递归算法Golang实现)
    基于Docker和Golang搭建Web服务器
    Nginx简单介绍以及linux下使用Nginx进行负载均衡的搭建
    php实现商城秒杀
    一致性hash (PHP)
  • 原文地址:https://www.cnblogs.com/FCoding/p/2575460.html
Copyright © 2020-2023  润新知