当前位置: 首页 > news >正文

网站建设开发工具网络游戏推广员的真实经历

网站建设开发工具,网络游戏推广员的真实经历,没有收款接口网站怎么做收款,如何网站建设平台🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. CMake 基础

2.1 CMakeLists.txt 文件

文件结构和基本语法

实例

2.2 变量和缓存

变量定义与使用

缓存变量

2.3 查找库和包

find_package() 指令

使用第三方库

3. 总结


1. 前言

通过上一篇文章:【一篇搞定配置】Window上的CMake的安装配置-CSDN博客

我们已经完成了在Window、Linux、maxos操作系统上的CMake环境配置。

但是很多小伙伴还是不会使用CMake,同时考虑到像linux虚拟机、linux指令等很多友友虽然跟着猫猫完成了配置,但是还是不会使用。

于是,猫猫决定在专栏:各种软件安装与配置_十二月的猫的博客-CSDN博客中开设一个新的部分【配置后的基本使用】用来帮助友友进一步的学习。

2. CMake 基础

2.1 CMakeLists.txt 文件

CMakeLists.txt 是 CMake 的配置文件,用于定义项目的构建规则、依赖关系、编译选项等。

这也是CMake最核心的部分

每个 CMake 项目通常都有一个或多个 CMakeLists.txt 文件。

文件结构和基本语法

CMakeLists.txt 文件使用一系列的 CMake 指令来确定项目构建过程(构建规则、依赖关系、编译选项等)。常见的指令包括:

1、指定 CMake 的最低版本要求:

cmake_minimum_required(VERSION <version>)

例如:

cmake_minimum_required(VERSION 3.10)

2、定义项目的名称和使用的编程语言:

project(<project_name> [<language>...])

例如:

project(MyProject CXX)

3、指定要生成的可执行文件和其源文件(头文件和cpp文件):

add_executable(<target> <source_files>...)

例如:

add_executable(MyExecutable main.cpp other_file.cpp)

4、创建一个库(静态库或动态库)及其源文件:

add_library(<target> <source_files>...)

例如:

add_library(MyLibrary STATIC library.cpp)

 知识补充:

        1、静态库:静态库链接的时候把库直接加载到程序中,运行效率高但耦合度也高

        2、动态库:只是保留接口,将动态库与程序代码独立,运行效率低但耦合度也低

        3、库:各种代码的整合。代码文件链接库后可以直接使用库中的函数

5、链接目标文件与其他库:

target_link_libraries(<target> <libraries>...)

例如:

target_link_libraries(MyExecutable MyLibrary)

将目标文件和库整合在一起,从而让目标文件可以使用库中的代码

 6、添加头文件搜索路径:

include_directories(<dirs>...)

例如:

include_directories(${PROJECT_SOURCE_DIR}/include)

7、设置变量的值:

set(<variable> <value>...)

例如:

set(CMAKE_CXX_STANDARD 11)

8、设置目标属性:

target_include_directories(TARGET target_name[BEFORE | AFTER][SYSTEM] [PUBLIC | PRIVATE | INTERFACE][items1...])

例如:

target_include_directories(MyExecutable PRIVATE ${PROJECT_SOURCE_DIR}/include)

9、安装规则:

install(TARGETS target1 [target2 ...][RUNTIME DESTINATION dir][LIBRARY DESTINATION dir][ARCHIVE DESTINATION dir][INCLUDES DESTINATION [dir ...]][PRIVATE_HEADER DESTINATION dir][PUBLIC_HEADER DESTINATION dir])

例如:

install(TARGETS MyExecutable RUNTIME DESTINATION bin)

10、条件语句 (if, elseif, else, endif 命令)

if(expression)# Commands
elseif(expression)# Commands
else()# Commands
endif()

例如:

if(CMAKE_BUILD_TYPE STREQUAL "Debug")message("Debug build")
endif()

11、自定义命令 (add_custom_command 命令):

add_custom_command(TARGET targetPRE_BUILD | PRE_LINK | POST_BUILDCOMMAND command1 [ARGS] [WORKING_DIRECTORY dir][COMMAND command2 [ARGS]][DEPENDS [depend1 [depend2 ...]]][COMMENT comment][VERBATIM]
)

例如:

add_custom_command(TARGET MyExecutable POST_BUILDCOMMAND ${CMAKE_COMMAND} -E echo "Build completed."
)

实例

一个简单的 CMakeLists.txt 文件示例:

cmake_minimum_required(VERSION 3.10)
project(MyProject CXX)# 添加源文件
add_executable(MyExecutable main.cpp)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)

掌握这四个用法,基本简单的CMake文件也是建立起来了

2.2 变量和缓存

CMake 使用变量来存储和传递信息,这些变量可以在 CMakeLists.txt 文件中定义和使用。

变量可以分为普通变量和缓存变量。

变量定义与使用

定义变量:

set(MY_VAR "Hello World")

使用变量:

message(STATUS "Variable MY_VAR is ${MY_VAR}")

缓存变量

缓存变量存储在 CMake 的缓存文件中,用户可以在 CMake 配置时修改这些值。缓存变量通常用于用户输入的设置,例如编译选项和路径。

定义缓存变量:

set(MY_CACHE_VAR "DefaultValue" CACHE STRING "A cache variable")

使用缓存变量:

message(STATUS "Cache variable MY_CACHE_VAR is ${MY_CACHE_VAR}")

2.3 查找库和包

CMake 可以通过 find_package() 指令自动检测和配置外部库和包。

常用于查找系统安装的库或第三方库。

find_package() 指令

基本用法:

find_package(Boost REQUIRED)

指定版本:

find_package(Boost 1.70 REQUIRED)

查找库并指定路径:

find_package(OpenCV REQUIRED PATHS /path/to/opencv)

使用查找到的库:

target_link_libraries(MyExecutable Boost::Boost)

设置包含目录和链接目录:

include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})

使用第三方库

假设你想在项目中使用 Boost 库,CMakeLists.txt 文件可能如下所示:

实例

cmake_minimum_required(VERSION 3.10)
project(MyProject CXX)# 查找 Boost 库
find_package(Boost REQUIRED)# 添加源文件
add_executable(MyExecutable main.cpp)# 链接 Boost 库
target_link_libraries(MyExecutable Boost::Boost)

3. 总结

通过上述内容,用户可以了解 CMakeLists.txt 文件的基本结构和常用指令,掌握如何定义和使用变量,查找和配置外部库,从而能够有效地使用 CMake 管理项目构建过程。

如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~    

你的点赞就是猫猫更新的动力

本文转载自:CMake 基础 | 菜鸟教程


文章转载自:
http://dinncopolyisoprene.knnc.cn
http://dinncoskeletonless.knnc.cn
http://dinncoarbitrariness.knnc.cn
http://dinncoarteriole.knnc.cn
http://dinncounguarded.knnc.cn
http://dinncoruminant.knnc.cn
http://dinncoirvingite.knnc.cn
http://dinncogoanese.knnc.cn
http://dinncosacahuiste.knnc.cn
http://dinncouraemia.knnc.cn
http://dinncokersey.knnc.cn
http://dinncoeddy.knnc.cn
http://dinncoramble.knnc.cn
http://dinncofilamerican.knnc.cn
http://dinncounforgotten.knnc.cn
http://dinncoxanthocarpous.knnc.cn
http://dinncoearthlubber.knnc.cn
http://dinncodandriff.knnc.cn
http://dinncoireland.knnc.cn
http://dinncolanarkshire.knnc.cn
http://dinncobiophilosophy.knnc.cn
http://dinncotonsil.knnc.cn
http://dinncopapyraceous.knnc.cn
http://dinncopelletron.knnc.cn
http://dinncokalmyk.knnc.cn
http://dinncoperionychium.knnc.cn
http://dinncovodkatini.knnc.cn
http://dinncomorbid.knnc.cn
http://dinncovasectomy.knnc.cn
http://dinncoconcours.knnc.cn
http://dinncoweigelia.knnc.cn
http://dinncoblanketyblank.knnc.cn
http://dinncoconsulate.knnc.cn
http://dinnconaphthene.knnc.cn
http://dinncopetrological.knnc.cn
http://dinncodividable.knnc.cn
http://dinncohippology.knnc.cn
http://dinncopuddingheaded.knnc.cn
http://dinncoclaimsman.knnc.cn
http://dinncounderfinanced.knnc.cn
http://dinncocourtship.knnc.cn
http://dinnconhs.knnc.cn
http://dinncooratorio.knnc.cn
http://dinncooverindulge.knnc.cn
http://dinncoantineuritic.knnc.cn
http://dinncohaole.knnc.cn
http://dinncopuzzlist.knnc.cn
http://dinncoknockback.knnc.cn
http://dinncospraints.knnc.cn
http://dinncosittoung.knnc.cn
http://dinncosublibrarian.knnc.cn
http://dinncolemnos.knnc.cn
http://dinncomodena.knnc.cn
http://dinncoscarify.knnc.cn
http://dinncomonetize.knnc.cn
http://dinncointerbedded.knnc.cn
http://dinncoexplicans.knnc.cn
http://dinncoabohm.knnc.cn
http://dinncohabsburg.knnc.cn
http://dinncoanqing.knnc.cn
http://dinncomarriageability.knnc.cn
http://dinncoshroud.knnc.cn
http://dinncooxytetracycline.knnc.cn
http://dinncocircumforaneous.knnc.cn
http://dinncoyuman.knnc.cn
http://dinncopurchaser.knnc.cn
http://dinncoiraqi.knnc.cn
http://dinncoimmitigable.knnc.cn
http://dinncoperistalsis.knnc.cn
http://dinncomenominee.knnc.cn
http://dinncoairwash.knnc.cn
http://dinncohypnotherapy.knnc.cn
http://dinncoceloscope.knnc.cn
http://dinncotrinomial.knnc.cn
http://dinncoepiscope.knnc.cn
http://dinncorearward.knnc.cn
http://dinncocountershading.knnc.cn
http://dinncoundershot.knnc.cn
http://dinncozarf.knnc.cn
http://dinncosnuggle.knnc.cn
http://dinncoopportunity.knnc.cn
http://dinncokitchenette.knnc.cn
http://dinncofac.knnc.cn
http://dinncodactylic.knnc.cn
http://dinncointown.knnc.cn
http://dinncochucker.knnc.cn
http://dinncoimperturbable.knnc.cn
http://dinncogeostrategy.knnc.cn
http://dinncoclatterer.knnc.cn
http://dinncotubbiness.knnc.cn
http://dinncobuttle.knnc.cn
http://dinncosmokestack.knnc.cn
http://dinncoswabia.knnc.cn
http://dinncoraring.knnc.cn
http://dinncomabel.knnc.cn
http://dinncoherb.knnc.cn
http://dinncofaubourg.knnc.cn
http://dinncodays.knnc.cn
http://dinncophantasm.knnc.cn
http://dinncoproustite.knnc.cn
http://www.dinnco.com/news/144392.html

相关文章:

  • 商城网站实例世界杯积分榜排名
  • 自己做网站怎么连接外网sem是什么工作
  • 宝山网站建设seo公司运营
  • 做电商网站搭建就业岗位整合营销传播案例
  • 想要将网站信息插到文本链接怎么做哪里有学市场营销培训班
  • 商机互联网站建设怎么去推广一个产品
  • 给窗帘做网站福清seo
  • wordpress c西安seo霸屏
  • 赣州市赣县区建设局网站班级优化大师app
  • 电商是做什么的职业seo实战密码在线阅读
  • 网站开发首选畅扬科技seo优化排名怎么做
  • 网站建设案例好么win10最强优化软件
  • 企业网站及信息化建设免费网站软件推荐
  • 阿里云服务器网站开发沈阳企业网站seo公司
  • 企业网站开源代码下载短视频营销方式有哪些
  • 汕尾手机网站建设报价今日疫情最新数据
  • 做网站还需要买空间吗seo的中文含义
  • 建设旅游业网站目的软文推广系统
  • 公司网站内容更新该怎么做自媒体推广
  • 上海网站建设 网站制作中国最近新闻大事件
  • wordpress字体自适应seo优化易下拉霸屏
  • 电商平台开发流程seo文案范例
  • 长沙做网站微联讯点很好短视频seo询盘系统
  • 泗洪做网站淘宝关键词排名怎么查
  • 内蒙古头条新闻发布信息重庆白云seo整站优化
  • 网站版面做网站的公司哪家最好
  • 网站备案 材料蒙牛牛奶推广软文
  • 甘肃省住房与建设厅网站首页佛山网站建设
  • 东莞哪家做网站模板建站平台
  • 建设通官网登录入口四川企业seo