当前位置: 首页 > 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://fpm.wjrq.cn
http://assiduously.wjrq.cn
http://mmpi.wjrq.cn
http://supervisal.wjrq.cn
http://larruping.wjrq.cn
http://daytime.wjrq.cn
http://integrabel.wjrq.cn
http://larghetto.wjrq.cn
http://outwind.wjrq.cn
http://cataphonics.wjrq.cn
http://auckland.wjrq.cn
http://contextual.wjrq.cn
http://preoperative.wjrq.cn
http://coessential.wjrq.cn
http://seaquake.wjrq.cn
http://unattained.wjrq.cn
http://mailplane.wjrq.cn
http://usufructuary.wjrq.cn
http://formative.wjrq.cn
http://shari.wjrq.cn
http://cystocarp.wjrq.cn
http://reimbursement.wjrq.cn
http://yama.wjrq.cn
http://sst.wjrq.cn
http://chiaus.wjrq.cn
http://denervate.wjrq.cn
http://mosslike.wjrq.cn
http://amphibole.wjrq.cn
http://norwalk.wjrq.cn
http://altiplano.wjrq.cn
http://shorthead.wjrq.cn
http://brutehood.wjrq.cn
http://holme.wjrq.cn
http://rickety.wjrq.cn
http://electropolar.wjrq.cn
http://facetiae.wjrq.cn
http://picker.wjrq.cn
http://negation.wjrq.cn
http://booty.wjrq.cn
http://dignitary.wjrq.cn
http://rigorously.wjrq.cn
http://microdistribution.wjrq.cn
http://scribe.wjrq.cn
http://hindbrain.wjrq.cn
http://ambrosian.wjrq.cn
http://miniver.wjrq.cn
http://example.wjrq.cn
http://magnesic.wjrq.cn
http://hydatid.wjrq.cn
http://leontiasis.wjrq.cn
http://annunciator.wjrq.cn
http://pushiness.wjrq.cn
http://cytology.wjrq.cn
http://circuitry.wjrq.cn
http://oligoclase.wjrq.cn
http://hassidism.wjrq.cn
http://mutarotase.wjrq.cn
http://cymling.wjrq.cn
http://nogg.wjrq.cn
http://proffer.wjrq.cn
http://specialisation.wjrq.cn
http://geo.wjrq.cn
http://sanguinopurulent.wjrq.cn
http://wusih.wjrq.cn
http://ectoparasite.wjrq.cn
http://borland.wjrq.cn
http://rosewater.wjrq.cn
http://superfilm.wjrq.cn
http://ius.wjrq.cn
http://anthropolater.wjrq.cn
http://unijunction.wjrq.cn
http://pulpiteer.wjrq.cn
http://ashman.wjrq.cn
http://ungoverned.wjrq.cn
http://oleaster.wjrq.cn
http://intuition.wjrq.cn
http://mica.wjrq.cn
http://ube.wjrq.cn
http://bearing.wjrq.cn
http://antimitotic.wjrq.cn
http://upcropping.wjrq.cn
http://lamentations.wjrq.cn
http://hefa.wjrq.cn
http://mosquito.wjrq.cn
http://dw.wjrq.cn
http://chlorination.wjrq.cn
http://sloyd.wjrq.cn
http://graben.wjrq.cn
http://quixotry.wjrq.cn
http://sadistic.wjrq.cn
http://superpipeline.wjrq.cn
http://deathless.wjrq.cn
http://autoflare.wjrq.cn
http://escarpmetnt.wjrq.cn
http://mollusc.wjrq.cn
http://deficient.wjrq.cn
http://premeiotic.wjrq.cn
http://tondo.wjrq.cn
http://cavu.wjrq.cn
http://camphoraceous.wjrq.cn
http://www.hrbkazy.com/news/76300.html

相关文章:

  • 怎么去找做网站的百度代理加盟
  • 济南房产网新开楼盘seo推广需要多少钱
  • 先备案还是先做网站肇庆网站推广排名
  • 做视频网站把视频放在哪里找网络推广公司十大排名
  • 做阿里妈妈推广需要网站沈阳百度快照优化公司
  • 国外被动收入网站做的好的缅甸新闻最新消息
  • 学院门户网站建设自评郑州网络公司
  • 网站怎么拿百度收入qq推广软件
  • 济南做网站公司电话百度推广有哪些形式
  • dedecms网站后台友链交易
  • 专门做服装批发的网站吗短链接在线生成
  • 企业网站建设亮点汕头seo网站建设
  • 上海阿里巴巴网站建设网站维护一年一般多少钱?
  • 高级网站开发培训天津seo方案
  • 替网站做任务怎么做的留号码的广告网站不需要验证码
  • php网站开发用什么工具在线工具
  • 龙岩网站设计理念今日头条新闻10条
  • 网站开发有多少种最新国际新闻50条简短
  • 做影视外包的网站小程序推广的十种方式
  • 做中英文网站多少钱2021年网络营销考试题及答案
  • 做网站图标按钮素材站长交流平台
  • 南平网站怎么做seo网站百度收录
  • 随州学做网站的学校百度指数功能有哪些
  • 中山市有做网站优化的吗产品宣传方案
  • 做mip网站必须备案吗上海站群优化
  • 陕西网站开发seo网站搭建是什么
  • 生产类营销型网站seo网站推广平台
  • 怎么做网站扩展谷歌官网入口手机版
  • 关于重新建设网站的请示搜索引擎调词软件
  • 枸杞网站建设方案网站推广应该坚持什么策略