百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

细节题!如何创建第一个CMake项目

bigegpt 2025-01-18 17:29 3 浏览

CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。感兴趣的朋友欢迎下载试用!

本教程将指导您完成创建和开发简单CMake项目的过程。我们将逐步学习CMake作为构建系统的基础知识,以及CMake项目的CLion设置和操作。

点击此处查看完整教程>>

1.基本的CMake项目

CMake是一个元构建系统,它使用称为CMakeLists的脚本为特定环境生成构建文件(例如,Unix计算机上的makefile)。在CLion中创建新的CMake项目时,会在项目根目录下自动生成CMakeLists.txt文件。

让我们从创建一个新的CMake项目开始,转到File | New Project ,然后选择C ++ Executable。在我们的示例中,项目名称为cmake_testapp,并且所选语言标准为C ++ 14

默认情况下,我们使用单个源文件获取项目主.cpp以及自动创建的根CMakeLists.txt文件包含以下命令:

2.构建目标和运行/调试配置

目标是使用CMake脚本构建的可执行文件或库。您可以在一个脚本中定义多个构建目标。

目前,我们的测试项目只有一个构建目标cmake_testapp。首次加载项目时,CLion自动添加与此目标关联的运行/调试配置:

单击切换器中的“Edit Configurations ”,或选择“Run | Edit Configurations”。从主菜单中编辑配置以查看详细信息。目标名称和可执行文件名称直接来自CMakeLists.txt:

注意此对话框的“Before launch ”区域:默认情况下,将构建设置为启动前步骤。因此,我们不仅可以使用此配置来调试或运行目标,还可以执行构建。

3.添加目标并重新加载项目

现在,让我们添加另一个源文件calc.cpp并从中创建一个新的可执行目标。

右键单击“项目”树中的根文件夹,然后选择“ New | C/C++ Source File.”。C / C ++源文件。CLion提示将文件添加到现有目标:

由于我们的目标是创建新目标,因此请清除“Add to targets”复选框。因此,CLion通知我们新文件当前不属于任何目标:

现在,让我们在CMakeLists.txt中手动声明一个新目标。请注意,CLion将CMake脚本视为常规代码文件,因此我们可以使用代码辅助功能,例如语法突出显示,自动完成和导航:

当我们在CMakeLists.txt中进行更改时,CLion需要重新加载它以更新项目结构:

我们可以重新加载项目一次(重新加载更改),也可以启用自动重新加载以使CLion默认应用CMakeLists.txt中的所有更改。 Settings / Preferences | Build, Execution, Deployment | CMake自动重新加载的选项。

重新加载项目后,CLion为新目标添加Run/Debug :

Library targets

到目前为止,我们添加的目标是可执行文件,我们曾经add_executable声明过它们。对于库目标,我们需要另一个命令-add_library。例如,让我们从calc.cpp源文件创建一个静态库:

add_library(test_library STATIC calc.cpp)

与可执行文件一样,CLion在重新加载项目后为库目标添加Run/Debug配置:

但是,这是不可执行的配置,因此,如果我们尝试运行或调试它,则会收到Executable not specified error错误消息。

要获取库文件,我们需要构建test_library目标。为此,我们可以切换到相应的配置,或调用Build | Build "test_library"。该libtest_library.a文件将出现在cmake的建造调试文件夹中。

4.构建类型和CMake配置文件

到目前为止创建的所有“Run/Debug”配置都是“Debug”配置,这是为我们的项目自动配置的CMake配置文件的默认构建类型。CMake配置文件是项目构建的一组选项。它指定了工具链,构建类型,CMake标志,用于存储构建工件的路径,make生成选项以及环境变量。

例如,要分离DebugRelease版本,我们需要在 Settings / Preferences | Build, Execution, Deployment | CMake中添加一个新的CMake配置文件。并将其构建类型设置为Release:

注意Build directory字段,该字段指定生成结果的位置。对于调试配置文件,默认文件夹是cmake-build-debug;对于发布配置文件,默认文件夹是cmake- build-release。您始终可以设置其他选择的位置。

现在,“运行/调试”配置切换器显示两个可用的配置文件:

切换配置或CMake配置文件可能会影响解析代码时使用的预处理器定义。例如,当有针对Debug和Release构建的单独标志时,或者当某些变量根据构建类型采用不同的值时。这称为解析上下文。

解析上下文定义了CLion如何执行语法突出显示以及其他代码见解,例如“查找用法”,重构和代码完成。在配置之间切换时,当前文件的解析上下文会自动更改。另外,您可以在上下文切换器中手动选择它(<自动选择>恢复自动选择):

今天的内容你学会了吗?接下来我们将讲解目录与库方面的知识!。慧都隆重推出“软件国产化服务季 ”,各类开发工具、控件正版授权应有尽有;点击“了解更多”查看详情>>

相关推荐

10w qps缓存数据库——Redis(redis缓存调优)

一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...

Redis系列专题4--Redis配置参数详解

本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....

开源一夏 | 23 张图,4500 字从入门到精通解释 Redis

redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...

redis的简单与集群搭建(redis建立集群)

Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...

关于Redis在windows上运行及fork函数问题

Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...

你必须懂的Redis十大应用场景(redis常见应用场景)

Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...

极简Redis配置(redis的配置)

一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...

什么是redis,怎么启动及如何压测

从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...

一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI

介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....

windows系统的服务器快速部署java项目环境地址

1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...

window11 下 redis 下载与安装(windows安装redis客户端)

#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...

一款轻量级的Redis客户端工具,贼好用!

使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...

一个.NET开发且功能强大的Windows远程控制系统

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...

Redis客户端工具详解(4款主流工具)

大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...