CMAKE的一些编译选项

GNU编译优化级别-O-O1-O2-O3 最近做一个算法的GPU加速,发现实际上使用gcc的-O3(最高级编译优化)选项,可以获得很高的加速比,我的程序里达到了3倍的样子,有时效果甚至比GPU加速好。因此小小学习了下GNU的编译优化。    附言一句,在进行调试的时候,最好关闭编译优化,不然程序自动优化,执行的步骤可能稍有变化。 GNU编译器提供-O选项供程序优化使用: -O      提供基础级别的优化 -O2     提供更加 阅读详情
set(CMAKE_BUILD_TYPE "Release")


if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -Wall -Wno-unused-variable -pthread")
else( CMAKE_BUILD_TYPE STREQUAL "Debug" )
        set(CMAKE_BUILD_TYPE "Release")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2 -pthread -fopenmp")
endif( CMAKE_BUILD_TYPE STREQUAL "Debug" )

message("Build Type:"${CMAKE_BUILD_TYPE} ${CMAKE_CXX_FLAGS})



debug模式下,加-Os,速度会快


Release模式下,加 -O2,和不加,有比较显著的差异

CMake 中设置 C++ 标准方式总结 适合需要精细控制编译选项,同时要指定 C++ 标准和其他特定编译选项的场景,但要注意代码的可移植性。:推荐在大多数情况下使用,尤其是注重代码可移植性和遵循 CMake 最佳实践的项目,它能让 CMake 自动处理 C++ 标准的设置。:适用于需要为所有源文件统一添加编译选项的场景,但不适合仅为 C++ 文件设置 C++ 标准。 阅读详情

相关推荐

CMake编译opencv各选项的含义

Table 1: Basic CMake options you will probably need Table 2: Options which introduce features into the library. All of these can be either ON or OFF.  Table 3: Options passed

放飞梦想,展望未来 8386

gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

Gcc 编译优化简介 gcc 提供了为了满足用户不同程度的的优化需要,提供了近百种优化选项,用来对{编译时间,目标文件长度,执行效率}这个三维模型进行不同的取舍和平衡。优化的方法不一而足,总体上将有以下几类:1)精简操作指令;2)尽量满足cpu的流水操作;3)通过对程序行为地猜测,重新调整代码的执行顺序;4)充分使用寄存器;5)对简单的调用进行展开等等。想全部了解这些编译选项,并在其中挑选适合的选项进行优化,无疑像个噩梦般的过程。单从gnu的官方网站上得到的手册来看,描述依然比较苍白,不足以完全了解选项的使

Aikenlan的博客 10万+

升级cmake版本后遇到的一个编译问题

cmake升级版本后,遇到编译错误 cc1plus: error: too many filenames given的解决方案

一定是在做梦 801

C++ 代码优化—set(CMAKE_CXX_FLAGS_RELEASE “-O2“)

在对导航代码进行交叉编译的时候,由于线程占CPU资源过大,我在CMake中添加如下优化。交叉编译可以通过,但是在目标平台arm上运行报线程相关错误。程序正常运行,占用CPU资源也降下来了。

qq_40464599的博客 1342

【CMake】CMake 编译选项的详细指南

本文详细介绍了CMake中编译选项的配置方法,包括全局选项设置、目标级选项配置、C++标准设置、警告级别控制和优化选项等。

浩瀚之水的专栏 585

体验灵雀云-创建基于Docker的云服务

今天体验了一下灵雀云,创建了第一个基于Docker的云服务。 1.登录灵雀云 2.开始使用 登录之后,从"控制台"进入操作界面,开始创建服务。 首先需要选择一个镜像。灵雀云已经为您提供了一些常用的镜像列表。请在“常用镜像”列表中,选择“其它”,然后找到“alauda/hello-world”镜像,点击它右侧的“选择”按钮,进入服务参数配置页面。 选择完要创建的

tomcat的专栏 3234

cmake:设置编译选项

此文为:轻松入门cmake系列教程 实践 1、 cmake debug和release设置 # default is "Debug" #set(CMAKE_BUILD_TYPE "Release") 2、启用Makefile版本中的详细输出。 # set this to see the compilation commands # set(CMAKE_VERBOSE_MAKEFILE 1) 3、根据cmake的debug和release设置编译选项 IF("${CMAKE_BUILD_TYPE}" .

OceanStar的博客 3万+

STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

CMake设置编译选项

在cmake脚本中,设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。使用这两种方式在有的情况下效果是一样的,但请注意它们还是有区别的:add_compile_options命令添加的编译选项是针对所有编译器的(包括c和c++编译器),而set命令设置CMAKE_C_FLAGS或CMAKE_CXX_FLAGS变量则是分别只针对c和c++编译器的。

顺其自然~专栏 4303

基于虚拟阻抗重塑的构网型VSG变流器SISO序阻抗建模与宽频振荡抑制策略分析(面向高比例新能源并网场景)

本文深入探讨了基于虚拟阻抗控制的构网型VSG变流器SISO序阻抗建模技术及其在高比例新能源并网场景中的宽频振荡抑制策略。通过虚拟阻抗重塑,有效改善了变流器的阻抗特性,解决了次/超同步频段的振荡问题,并提供了参数设计、阻抗扫频验证等实用技巧,为新能源并网系统的稳定性提供了可靠解决方案。

weixin_29268385的博客 251

Windows下的Geant4安装教程

本教程将从0开始展示在Windows下如何安装Geant4,包括各种辅助工具(QT、Cmake、Visual Studio)的下载安装,环境变量的配置,以及example的生成等。

weixin_49065278的博客 4106

CMake 编译选项设置

在CMakeLists.txt中可以通过修改CMake内置的环境变量来改变C或C++的编译选项. 编译选项相关的CMake 变量如下: CMAKE_C_FLAGS = CMAKE_C_FLAGS_DEBUG = -g CMAKE_C_FLAGS_MINSIZEREL = -Os -DNDEBUG CMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUG CMAKE_C_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG CMAKE_CXX_FLAGS = CM

Huoon的博客 2万+

历年安徽省省赛AHOI初中组考点分类汇总考点分类汇总

持续更新中.....

weixin_42358969的博客 818

cmake中的编译选项

CMake是一个跨平台的构建系统,它可以根据简单的配置文件生成各种平台的构建工具(例如Makefile、Visual Studio项目文件等)。CMake提供了许多配置选项和命令,可以根据项目的需求进行灵活的定制。基于esp-idf开发esp32时,idf.py工具对cmake做了一些封装,但基本兼容,cmake具有的子命令,idf.py基本都有。这里设置了项目使用C++11标准进行编译,并且如果编译器不支持C++11,CMake会报错。这将设置项目的可执行文件、库文件和静态库文件的输出目录。

blog.boringhex.top 3116

费雪的未来增长评估:预测颠覆性技术的影响

本文旨在提供一个系统性的框架,用于评估和预测颠覆性技术的增长轨迹。我们将重点关注费雪增长模型(Fisher-Pry Model)这一经典技术扩散理论,探讨其在现代技术预测中的应用价值。文章首先介绍费雪增长模型的基本概念,然后深入其数学原理和算法实现。随后展示实际应用案例,讨论工具资源,最后探讨未来发展趋势。每个部分都包含详细的技术实现和理论分析。费雪增长模型(Fisher-Pry Model):一种描述技术替代过程的S型增长模型,用于预测新技术取代旧技术的速率。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 928

提高RFID检测距离以及检测速度的方法总结

摘要:提高RFID检测距离需优化阅读器功率、标签灵敏度、天线设计及频段选择,同时减少环境干扰;提升检测速度则需改进防碰撞算法、增强并行处理能力、精简数据传输。实际应用需平衡两者关系,如物流仓储采用UHF频段、高增益天线和动态Q算法实现远距离高速读取,ETC系统则通过微波频段和高速调制实现超远距离快速识别。不同场景需针对性优化硬件配置和系统参数。

start_up_go的博客 292

【CMake】CMake 编译选项设置

这个选项是一个公共的选项,不管是Release还是Debug都需要设置。因为在最终编译的时候的编译选项不管是Release还是Debug都包含了CMAKE_CXX_FLAGS这个变量。:编译Release版本的时候采用的编译选项,默认包-O3选项,该选项表示优化等级;:编译Debug版本的时候会采用的编译选项,默认只有一个-g选项,包含调试信息;:包含调试信息的Release版本,-O2和-g,优化的同时也包含了调试信息;选项,因此,需要设置编译选项的时候,在。选项,编译Release则会采用。

qq_43331089的博客 2万+

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 100

(四)CMake编译选项

一、cmake、make的本质是编译选项的组织集合 本质上来说,make和cmake都是协助你进行编译的工具,用户完全可以通过g++ gcc按照编译器要求来进行直接编译,只不过make和cmake根据各自认为合适的组织规则方便我们进行编译管理罢了。如增加一个线程库: g++ *.cpp -o -lpthread test 这是g++编译器要求的样子。所有包含头文件、库文件、打包和链接库等操作都通过-选项来完成。 make为了减少和整合编译逻辑,将一些例如打包ar操作封装在一个变量AR中;一些编译器专用的选

Fishfishfishfishcat 4687

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

总结CMake设置编译选项

总结CMake设置编译选项

qq_44601476的博客 5735

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CMake 编译选项全面详解

CMake 编译选项全面详解

C/C++ 1274

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

CMake编译选项

注意!

顺其自然~专栏 735

CMake设置编译选项的几种方法

CMAKE_C_COMPILER:指定C编译器 CMAKE_CXX_COMPILER:指定C++编译器 CMAKE_C_FLAGS:指定编译C文件时编译选项,也可以通过add_definitions命令添加编译选项 在cmake脚本中,设置编译选项(配置编译器)有如下三种方法: (1)add_compile_options命令 add_compile_options(-Wall -Werro...

永远 4万+

CMake: 设置编译选项

尽管检查这些变量的方式非常流行,但我们认为更健壮的替代方法是检查所需的标志集是否与给定的编译器一起工作,这样项目中实际上只使用有效的标志。我们学习了构建类型的相关内容,并且可以生成了不同构建类型的库,这一篇我们将介绍编译器选项的相关内容。是指在编译程序时,可以通过设置不同的选项来控制编译器的行为和生成的代码的特性。不同的编译器可能支持不同的选项,具体的选项和使用方法可以参考编译器的文档或者官方网站。此外,一些标志可能会被弃用,或者在编译器的较晚版本中引入。标志确定设置为给定编译器有效的标志,因此将包含在。

jjjstephen的博客 2744

CMake编译选项CMAKE_CXX_FLAGS详解

概要本文涉及cmake在模式下的编译选项控制,其具体的实践是基于submodule的代码组织形式。基础知识先看一下和相关的参数默认值参数默认值无-g如果对应参数未设置,则使用默认值。我们在使用cmake命令时会指定使用哪种编译模式,它是通过来定义的,如我们可以这么干:Debug编译:Release编译:对于debug模式,实际使用的编译选项是对于release模式,实际使用的编译选项是代码假设我们有个工程,代码组织如下。

zhanglehes的专栏 6615
上一篇: 圣诞偶感
下一篇: ld-linux.so查找共享库的顺序
Feisy
博客等级 码龄19年 166粉丝 235原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值