CMake指令解析 set(CMAKE_CXX_FLAGS “$ENV{CXXFLAGS} -rdynamic -O3 -fPIC -ggdb -std=c++11 -Wall -Wno-deprec

2023-05-16

完整代码

set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -rdynamic -O3 -fPIC -ggdb -std=c++11 -Wall -Wno-deprecated -Werror -Wno-unused-function -Wno-builtin-macro-redefined -Wno-deprecated-declarations")

1、CMAKE_CXX_FLAGS

这种大写的变量,一般都是CMake预定义的内建变量,且他们是全局的。该变量可用于设置编译选项。直接使用set修改其值即可。

除了修改该变量的值之外,还可以通过add_compile_options命令来设置编译选项。它们的区别是:
add_compile_options命令添加的编译选项是针对所有编译器的(包括c和c++编译器)
CMAKE_C_FLAGSCMAKE_CXX_FLAGS变量则是分别只针对c和c++编译器

2、$ENV{}

$ENV{}用于获取环境变量设置环境变量的方法是:

set(ENV{变量名})

3、CXXFLAGS

CXXFLAGS是C++编译器的编译选项。
在这里插入图片描述

4、-rdynamic

-rdynamic编译选项通知链接器将所有符号添加到动态符号表中。(目的是能够通过使用 dlopen 来实现向后跟踪)
gcc选项-g与-rdynamic的异同

5、-O3

-O3是一个优化选项,告诉编译器优化我们的代码。
gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

6、-fPIC

-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码,即,产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
gcc编译参数-fPIC的一些问题

7、-ggdb

-ggdb选项使编译器生成gdb专用的更为丰富的调试信息。
gcc 的 -g 和 -ggdb 选项

8、-std=c++11

-std=c++11设置为使用C++11标准

9、-Wall

-Wall选项告诉编译器 编译后显示所有警告。
gcc中的-w -W和-Wall选项

10、-Wno-deprecated

不要警告使用已弃用的功能

11、-Werror

告诉编译器视所有警告为错误,出现任何警告立即放弃编译

12、-Wno-unused-function

关闭 函数被定义了但没有被使用 而产生的警告,即,不使用的函数不警告。

13、-Wno-builtin-macro-redefined

如果某些内置宏被重新定义,请不要警告。这抑制了警告的重新定义__TIMESTAMP__,TIMEDATEFILE,和__BASE_FILE__。

14、-Wno-deprecated-declarations

关闭使用废弃API的警告。
gcc警告选项汇总,这篇文章贼全面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CMake指令解析 set(CMAKE_CXX_FLAGS “$ENV{CXXFLAGS} -rdynamic -O3 -fPIC -ggdb -std=c++11 -Wall -Wno-deprec 的相关文章

随机推荐

  • 2023-03-12 java 子类对父类所拥有的方法的重命名

    例如 xff1a person 里面有个Id方法 public void Id System out println 34 身份证号 xff1a 34 43 id student引用person类 xff0c 现在我们在student里面改
  • Ubuntu2204LTS基础操作详解

    废话不多 说上干货 Ubuntu2204LTS下载链接 xff1a https ubuntu com download 默认使用root用户操作 或者命令前边加 sudo 关闭图形界面 关闭图形界面 xff0c 启用tty终端登录的方法如下
  • 解决Xamarin开发Android项目时的"Could not create the Java Virtual Machine"错误

    如题 xff0c 笔者在编辑Main axml界面时出现 34 Could not create the Java Virtual Machine 34 错误 xff0c 可按以下步骤解决 xff1a 1 运行注册表编辑器 xff1a 开始
  • Centos 7 虚拟机ifconfig或ip addr时,ens33不显示inet地址(已设置NOBOOT为yes)

    在虚拟机中输入ifconfig或ip addr时 xff0c 出现如下情况 xff1a sudo dhclient ens33 sudo ifconfig ens33 依次执行上面两行 xff0c 之后发现ens33中可以显示inet了 本
  • 7---整数反转

    给你一个 32 位的有符号整数 x x x xff0c 返回将 x x x 中的数字部分反转后的结果 如果反转后整数超过 32 位的有符号整数的范围
  • 使用windows远程连接kali的桌面

    使用windows远程连接kali的桌面 kali操作系统需要做的一些配置 安装xrdp span class token function apt span span class token parameter variable y sp
  • Android Studio模拟器出错无法运行的解决办法

    之前在运行Android Studio项目的时候 xff0c 原本用的是AS上安装过的模拟器 xff0c 然后我中途又把夜神模拟器打开也运行了一下 结果当我再次使用AS上的模拟器时 xff0c 模拟器上总是出现一个白色弹窗 xff0c 里面
  • Spring框架

    目录 一 Spring概述 二 Spring入门程序 xff08 理解控制反转IoC xff09 三 依赖注入 xff08 Dependency Injection xff0c DI xff09 3 1 依赖注入的实现方式 一 Spring
  • statement和PreparedStatement的区别

    学习总结转载 xff0c 有改动 xff0c 建议移步原作者 版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https bl
  • Spring环境的搭建和简单使用

    一 为什么使用spring和什么spring 1 xff09 代码中对象间的以来关系特别多 xff0c 代码耦合度比较高 xff0c 为了解决这种问题 xff0c 使用spring框架 2 xff09 spring是一个开源的容器框架 xf
  • Java中&与&&的区别

    Java中 amp 和 amp amp 都是逻辑与 xff0c 需要左右两边同时满足条件才可以得到true的结果 但是 xff0c 它们之间也有区别 xff1a 1 amp amp 也叫短路与 xff0c 当 amp amp 左边的条件不满
  • 关于二叉树的建立(C语言)(链式)

    首先 xff0c 我们得知道二叉树是什么 xff01 xff01 这东西网上一大把 还有 xff0c 二叉树的遍历顺序 xff0c 前序 xff08 根左右 xff09 xff0c 中序 xff08 左根右 xff09 xff0c 后序 x
  • [springMVC学习]1、springmvc设置spring配置文件

    我们给springmvc设置配置文件 xff0c 实际上就是让某个类在tomcat启动时 xff0c 自动的去读取配置文件 xff0c 完成ioc容器的创建 xff0c 完成初始化工作 在spring中 xff0c 我们是手动new出来 x
  • 无法连接 MKS: Login(username/password)incorrect

    升级到Vmware Workstation 12之后 xff0c 客户端能连上虚拟机服务器 xff0c 但却打不开共享的虚拟机 xff0c 提示报错 无法连接 MKS Login username password incorrect 查了
  • 李永乐(一)行列式计算——笔记

    行列式基本性质 一 行列式求值 说明 xff1a 第 i 行元素 乘 第 j 列的代数余子式 之和 61 0 二 转置行列式值不变 引申 xff1a 行有什么性质 xff0c 列就有什么性质 三 两行互换 xff0c 行列式值变号 引申 x
  • 计算机网络——组播地址(多播地址、D类地址)详解——不断完善更新中

    1 是什么 先看这张图 xff0c 组播地址是分类编址的IPv4地址中的D类地址 xff0c 又叫多播地址 xff0c 他的前四位必须是1110 xff0c 所以网络地址的取值范围是224 239 2 这些IP地址用来做什么 224 0 0
  • 线代——猴博士笔记

    求向量组的秩 xff0c 先求极大无关组 xff0c 极大无关组里几个向量 xff0c 秩就是几 什么是极大无关组 xff1f 从一向量组挑出几个向量 xff0c 他们线性无关 xff0c 且原来向量组中任意一个向量加进去 xff0c 又变
  • C++ std::ref————详解

    想学习ref xff0c 必须先学习reference rapper 1 是什么 xff1f ref是个函数模板 xff1a 用来构建一个reference wrapper对象并返回 xff0c 该对象拥有传入的elem变量的引用 如果参数
  • I/O复用的高级应用:聊天室程序———实例代码

    1概述 这是一个聊天室程序 xff0c 分为服务端和客户端两部分 多个客户端可以连接到同一个服务器 xff0c 当一个客户端向服务器发送消息时 xff0c 该消息会被转发给除发送端外的其他客户端 xff0c 其他客户端收到该消息并输出到标准
  • CMake指令解析 set(CMAKE_CXX_FLAGS “$ENV{CXXFLAGS} -rdynamic -O3 -fPIC -ggdb -std=c++11 -Wall -Wno-deprec

    完整代码 set span class token punctuation span CMAKE CXX FLAGS span class token string 34 span class token variable ENV span