CMake 学习笔记(控制生成 Release 和 Debug)

这篇具有很好参考价值的文章主要介绍了CMake 学习笔记(控制生成 Release 和 Debug)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CMake 学习笔记(控制生成 Release 和 Debug)

CMake 支持4中Build type。分别是:

  1. Debug : 调试模式,带调试信息,没有任何的优化
  2. Release : 没有调试信息,速度优化
  3. RelWithDebInfo:执行部分的优化,带有调试信息
  4. MinSizeRel : 生成的可执行文件的体积最小

下面的例子使用 MSYS2 里面的cmake 来演示。

用个非常简单的例子:

#include <cstdlib>
#include <iostream>
#include <string>

std::string say_hello() { return std::string("Hello, CMake world!"); }

int main() {
  std::cout << say_hello() << std::endl;
  return EXIT_SUCCESS;
}

CMakeLists.txt 如下:

# set minimum cmake version
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
# project name and language
project(recipe-01 LANGUAGES CXX)

add_executable(hello-world hello-world.cpp)

执行下面的例子:

cmake .. -G "MinGW Makefiles" -D CMAKE_MAKE_PROGRAM=mingw32-make -D CMAKE_BUILD_TYPE="Debug"

mingw32-make.exe

这个例子执行后,生成的就是 Debug 版的可执行文件。其他同理。

如果要生成Visual stdio 的工程文件。上面说的方法就不适用了。需要用另一个变量来控制。下面是例子。

cmake .. -G"Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Release;Debug"

执行这条语句后生成的项目文件就支持 Release 和 Debug 两种生成版本。文章来源地址https://www.toymoban.com/news/detail-532927.html

到了这里,关于CMake 学习笔记(控制生成 Release 和 Debug)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows系统下5分钟配置好PCL(debug和release)

    PCL环境的配置总是令人头疼,尤其是对新手来说,源码的下载、编译、安装都显得尤为复杂,本博客将提供自己编译好的文件,5分钟内完成环境配置。经测试,在 win7 、 win10 、 win11 ; VS2013 、 VS2017 、 VS2019 、 VS2022 上均配置成功(目前还没失败过,只要你会使用鼠标) 点云

    2024年01月24日
    浏览(45)
  • QtCreator中三种不同编译版本 debug、release、profile 的区别

    debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。 release发布模式,编译后的可执行文件很小,不带任何调试符号信息,一般用于打包发布程

    2024年02月10日
    浏览(45)
  • django-release-debug-apache-mod-wsgi-原理解析

    由于django处理静态资源的效率偏低,顾在release模式不支持静态资源,这种情况需要在apache下配置静态资源路径。在Apache24conf目录下httpd.conf文件中,添加映射,如下所示: 在windows下,mod_wsgi作为一个动态链接库加载进apache内存,如下图所示: mod_wsgi不能作为单独进程运行。

    2024年02月04日
    浏览(41)
  • 2023_4_23_VS下Release怎么打断点进行debug

    🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下,下次更新不迷路💟💟 😆😆😆私聊获取个人订阅号哦,欢迎订阅共同学习😆😆😆 💖💖💖💖可以加入大家庭群聊,一起学习天天有福利💖💖💖💖 今天突

    2023年04月24日
    浏览(26)
  • 在Visual Studio 中,Release、Debug、x86和x64 四个不同的概念

    在 Visual Studio 中,Release、Debug、x86和x64 是四个不同的概念。 Release 和 Debug 是编译的不同配置,用于控制编译器生成的代码和符号信息的方式。 - Release 配置用于生成最终发布版本的代码。在 Release 模式下,编译器会进行各种优化,以提高程序的性能和执行效率。此外,Relea

    2024年02月17日
    浏览(44)
  • bash: cmake: command not found...+++++++lsb_release: command not found

    centos中安装那个cmake。 1、问题 当前系统: 也可能会遇到 lsb_release: command not found 遇到此问题详见 二. bash: lsb_release: command not found错误的解决方法 2、安装cmake 3、测试效果 转载后的博文 -bash: lsb_release: command not found 就是 lsb_release命令没有安装 通过搜索,找到下面文章,文章中

    2024年02月09日
    浏览(40)
  • CMake学习笔记-VSCode使用Cmake编译C++工程

    Win + MinGW + CMake + Git 官方教程1: https://cmake.org/cmake/help/latest/guide/tutorial/A%20Basic%20Starting%20Point.html 官方教程2: https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html 官方练习材料1:https://github.com/Kitware/CMake.git 官方练习材料2:https://github.com/Kitware/CMake/blob/master/Help/guide

    2024年02月11日
    浏览(60)
  • CMake 学习笔记

    CMake 已经是 C++ 构建系统的事实标准。 主要是对小彭老师的 C++ 视频课程中 CMake 相关部分的一些笔记和整理,视频链接如下 学 C++ 从 CMake 学起 现代 CMake 高级教程 包含视频中的代码和 PPT 的仓库见以下链接 https://github.com/parallel101/course 本笔记重点关注与 CMake 相关的一些知识点

    2024年02月03日
    浏览(40)
  • c++ vscode cmake debug for mac

    1. 下载vscode 2. 安装c++插件 参考:C++ programming with Visual Studio Code 3. 安装llvm,可以使用brew安装 4. 配置llvm到系统环境变量中 5. 编写c++代码 6. 编写CMakeLists.txt文件(前提安装cmake) 7. 生成vscode中c++的智能提示文件c_cpp_properties.json 可参考:https://code.visualstudio.com/docs/cpp/config-clang

    2024年02月08日
    浏览(43)
  • vscode debug with cmake on macos

    for cmake for debugging launch.json \\\"program\\\": \\\"${command:cmake.launchTargetPath}\\\", 这句会通过cmake 来启动要调试的程序, 因为程序是通过CMAKE来build https://vector-of-bool.github.io/docs/vscode-cmake-tools/debugging.html 如果从下面的命令行启动debug, 那么要从settings.json传参

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包