g++/gcc compile_options

文章目录

  • 常用:
  • 优化
  • 代码生成
  • 输出文件
  • 预处理器
  • 语言
  • 杂项
  • 链接

常用:

-Ddef=1 定义#define def=1
-Udef 定义#undef def
-g 生成调试信息
-Idir 添加头文件的寻找目录dir
-Ldir 添加库文件的寻找目录dir
-ltest 添加库libtest.a
-m486 针对 486 进行代码优化
-o name输出文件名
-Os/1/2/3/s 代码优化
-share /-static 动态静态编译
-w不生成警告信息
-Wall生成所有警告信息
-fvisibility=hidden
-fPIC 编译动态库时,要求产生与位置无关代码(Position-Independent Code)
-m32/64/x32

优化

-O1 最小化空间 minimize space
-Op[-] 改善浮点数一致性 improve floating-pt consistency
-O2 最大化速度 maximize speed
-Os 优选代码空间 favor code space
-Oa 假设没有别名 assume no aliasing
-Ot 优选代码速度 favor code speed
-Ob 内联展开(默认 n=0) inline expansion (default n=0)
-Ow 假设交叉函数别名 assume cross-function aliasing
-Od 禁用优化(默认值) disable optimizations (default)
-Ox 最大化选项。(-Ogityb2 -Gs) maximum opts. (-Ogityb1 -Gs)
-Og 启用全局优化 enable global optimization
-Oy[-] 启用框架指针省略 enable frame pointer omission
-Oi 启用内建函数 enable intrinsic functions

代码生成

-O1 最小化空间 minimize space
-Op[-] 改善浮点数一致性 improve floating-pt consistency
-O2 最大化速度 maximize speed
-Os 优选代码空间 favor code space
-Oa 假设没有别名 assume no aliasing
-Ot 优选代码速度 favor code speed
-Ob 内联展开(默认 n=0) inline expansion (default n=0)
-Ow 假设交叉函数别名 assume cross-function aliasing
-Od 禁用优化(默认值) disable optimizations (default)
-Ox 最大化选项。(-Ogityb2 -Gs) maximum opts. (-Ogityb1 -Gs)
-Og 启用全局优化 enable global optimization
-Oy[-] 启用框架指针省略 enable frame pointer omission
-Oi 启用内建函数 enable intrinsic functions

输出文件

-Fa[file] 命名程序集列表文件 name assembly listing file
-Fo 命名对象文件 name object file
-FA[sc] 配置程序集列表 configure assembly listing
-Fp 命名预编译头文件 name precompiled header file
-Fd[file] 命名 .PDB 文件 name .PDB file
-Fr[file] 命名源浏览器文件 name source browser file
-Fe 命名可执行文件 name executable file
-FR[file] 命名扩展 .SBR 文件 name extended .SBR file
-Fm[file] 命名映射文件 name map file

预处理器

-FI 命名强制包含文件 name forced include file
-C 不吸取注释 don’t strip comments
-U 移除预定义宏 remove predefined macro
-D{=|#} 定义宏 define macro
-u 移除所有预定义宏 remove all predefined macros
-E 将预处理定向到标准输出 preprocess to stdout
-I 添加到包含文件的搜索路径 add to include search path
-EP 将预处理定向到标准输出,不要带行号 preprocess to stdout, no #line
-X 忽略“标准位置” ignore “standard places”
-P 预处理到文件 preprocess to file

语言

-Zi 启用调试信息 enable debugging information
-Zl 忽略 .OBJ 中的默认库名 omit default library name in .OBJ
-ZI 启用调试信息的“编辑并继续”功能 enable Edit and Continue debug info
-Zg 生成函数原型 generate function prototypes
-Z7 启用旧式调试信息 enable old-style debug info
-Zs 只进行语法检查 syntax check only
-Zd 仅要行号调试信息 line number debugging info only
-vd{0|1} 禁用-启用 vtordisp disable-enable vtordisp
-Zp[n] 在 n 字节边界上包装结构 pack structs on n-byte boundary
-vm 指向成员的指针类型 type of pointers to members
-Za 禁用扩展(暗指 -Op) disable extensions (implies -Op)
-noBool 禁用“bool”关键字 disable “bool” keyword
-Ze 启用扩展(默认) enable extensions (default)

杂项

-?, -help 打印此帮助消息 print this help message
-c 只编译,不链接 compile only, no link
-W 设置警告等级(默认 n=1) set warning level (default n=1)
-H 最大化外部名称长度 max external name length
-J 默认 char 类型是 unsigned default char type is unsigned
-nologo 取消显示版权消息 suppress copyright message
-WX 将警告视为错误 treat warnings as errors
-Tc 将文件编译为 .c compile file as .c
-Yc[file] 创建 .PCH 文件 create .PCH file
-Tp 将文件编译为 .cpp compile file as .cpp
-Yd 将调试信息放在每个 .OBJ 中 put debug info in every .OBJ
-TC 将所有文件编译为 .c compile all files as .c
-TP 将所有文件编译为 .cpp compile all files as .cpp
-Yu[file] 使用 .PCH 文件 use .PCH file
-V 设置版本字符串 set version string
-YX[file] 自动的 .PCH 文件 automatic .PCH
-w 禁用所有警告 disable all warnings
-Zm 最大内存分配(默认为 %) max memory alloc (% of default)

链接

-MD 与 MSVCRT.LIB 链接 link with MSVCRT.LIB
-MDd 与 MSVCRTD.LIB 调试库链接 link with MSVCRTD.LIB debug lib
-ML 与 LIBC.LIB 链接 link with LIBC.LIB
-MLd 与 LIBCD.LIB 调试库链接 link with LIBCD.LIB debug lib
-MT 与 LIBCMT.LIB 链接 link with LIBCMT.LIB
-MTd 与 LIBCMTD.LIB 调试库链接 link with LIBCMTD.LIB debug lib
-LD 创建 .DLL Create .DLL
-F 设置堆栈大小 set stack size
-LDd 创建 .DLL 调试库 Create .DLL debug libary
-link [链接器选项和库] [linker options and libraries]

g++/gcc compile_options相关推荐

  1. linux g++ gcc编译c++哪个好,linux g++编译c++

    单个源文件生成可执行程序 编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件.编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 li ...

  2. Ubuntu的 g++ gcc版本升降级

    更改gcc默认版本(gcc版本降级/升级) ### 以降级到gcc-6为例 >* sudo apt install gcc-6 g++-6 >* sudo update-alternati ...

  3. g++/gcc编译过程中遇到的问题

    第一次写博客,用来记录一下编程过程中遇到的问题. 在学习leveldb的过程中遇到了一个编译问题,以前虽然碰到过,也解决了,但是没有总结和记录,导致再次出现,差点忘记怎么弄的了,所以以此记录一下. 一 ...

  4. win10查看g++/gcc版本

    windows查看gcc/g++ 版本 cmd 命令行 gcc --version g++ --version Mingw-w64在win10下的安装使用

  5. 查看g++/gcc版本

    windows查看gcc/g++ 版本 cmd 命令行 gcc --version g++ --version

  6. ACM提交,C++,G++,C,GCC的区别

    今天做了一道水题,POJ-1004,水题一个,12个double类型的数求平均数 但是, 1 #include <iostream> 2 #include <cstdio> 3 ...

  7. gcc,cc,g++,CC的区别

    ***gcc是C编译器: ***g++是C++编译器: ***linux下cc一般是一个符号连接,指向gcc ***gcc说明 1.gcc编译常用格式: gcc  C源文件 -o 目标文件 或 gcc ...

  8. 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3)

    CentOS 7升级GCC 正文开始@Assassin 目录: CentOS 7升级GCC 基本执行步骤: 1. 切换用户: 2. 安装centos-release-scl: 3. 安装devtool ...

  9. g 最新编译器linux,Linux下安装gcc 、g++ 、gfortran编译器

    一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过"gcc -v"命令来查看是否安装. (2).g++ 安 ...

最新文章

  1. 问卷星调查学生对《算法》教学的建议与反馈
  2. Lubuntu下小巧好用的Python编辑工具Geany
  3. c语言中结构体的用法
  4. Python Django 生成随机字符串UUID的使用示例
  5. java排序算法之冒泡排序
  6. Maven build中隐藏的SAP UI5 JavaScript merge任务
  7. JAVA复习5(TreeSet)
  8. win7域内桌面黑屏
  9. 软件外包业的崛起,掀起电脑培训热潮
  10. mycat php pdo,mycat程序写入和读取中文乱码解决
  11. Linux内核模块编程入门( 最简单的内核模块编程)
  12. 机器人潘森护盾_新版潘森无伤抗塔 E技能护盾机制全解析
  13. 质谱的工作原理及发展史
  14. python开头编码cc手_python的编码问题整理
  15. SpringBoot 集成 微信绑定 微信登录
  16. linux服务器定时执行python代码
  17. 生成对角矩阵 numpy.diag
  18. 机器学习笔记--PR曲线和ROC曲线
  19. Vue生命周期,Vue中在哪个生命周期阶段调用异步请求最佳
  20. CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可

热门文章

  1. Splay Tree
  2. kubernetes: coredns故障 /etc/coredns/Corefile问题
  3. nbd 相关概念及操作
  4. Mysql错误编码和解释表
  5. 国内数藏造富只是个例,散户见好就收
  6. PHP语言基础知识(超详细)
  7. 淘宝买零件组装一台手机,可以正常使用,想自己组装手机的可以看下
  8. Unity3d 防止相机“穿墙”功能
  9. Qt制作漂亮个性化的界面
  10. java菜鸟1:jdk 安装