细节题!如何创建第一个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生成选项以及环境变量。
例如,要分离Debug和Release版本,我们需要在 Settings / Preferences | Build, Execution, Deployment | CMake中添加一个新的CMake配置文件。并将其构建类型设置为Release:
注意Build directory字段,该字段指定生成结果的位置。对于调试配置文件,默认文件夹是cmake-build-debug;对于发布配置文件,默认文件夹是cmake- build-release。您始终可以设置其他选择的位置。
现在,“运行/调试”配置切换器显示两个可用的配置文件:
切换配置或CMake配置文件可能会影响解析代码时使用的预处理器定义。例如,当有针对Debug和Release构建的单独标志时,或者当某些变量根据构建类型采用不同的值时。这称为解析上下文。
解析上下文定义了CLion如何执行语法突出显示以及其他代码见解,例如“查找用法”,重构和代码完成。在配置之间切换时,当前文件的解析上下文会自动更改。另外,您可以在上下文切换器中手动选择它(<自动选择>恢复自动选择):
今天的内容你学会了吗?接下来我们将讲解目录与库方面的知识!。慧都隆重推出“软件国产化服务季 ”,各类开发工具、控件正版授权应有尽有;点击“了解更多”查看详情>>
- 上一篇:大型工程的管理,CMake快速入门
- 下一篇:使用Ninja编译和安装NNG
相关推荐
- 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万字《阿里架构师进阶专题合集...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- skip-name-resolve (63)
- linuxlink (65)
- pythonwget (67)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)