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

设计美观网站有哪些wordpress 导航网站模板

设计美观网站有哪些,wordpress 导航网站模板,网站建设公司果动,免费观看高清正能量直播下载一、Cmake 简介 cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。 本文供C软件开发者入门学习参考,主要内容来自网络。 下载地址: Download CMake …

一、Cmake 简介

cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。

本文供C++软件开发者入门学习参考,主要内容来自网络。

下载地址:

Download CMake

windows下,可以下载Windows x64 ZIP

当前最新版 4.0.3。

配置 CMake

确保 CMake 的安装路径被添加到系统的 PATH 环境变量中,这样可以在任何位置的命令行中访问 CMake。

Windows 环境变量设置

如果在安装过程中选择了将 CMake 添加到 PATH,则不需要额外配置。

如果未选择,可以手动添加:右键点击"计算机"或"此电脑",选择"属性" -> "高级系统设置" -> "环境变量",在"系统变量"中找到 Path,点击"编辑",将 CMake 的安装路径添加进去。

macOS 和 Linux

通常安装程序会自动配置 PATH,如果没有,可以手动配置。

CMake GUI 使用

CMake 也提供了图形用户界面(GUI),可以用于更直观地配置项目。

在 Windows 中,启动  cmake-gui.exe

二、CMake 基础

CMakeLists.txt 文件

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

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

简单示例如下:

#最低支持的CMAKE版本
cmake_minimum_required(VERSION 3.31.0)

set(CMAKE_C_COMPILER "C:/Qt/Tools/mingw1310_64/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/Qt/Tools/mingw1310_64/bin/g++.exe")

set(projectName hello)

#项目名字
project(${projectName})

#设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

#自动检查系统中可用的C++编辑器, 我已经在系统中安装了MSVC

#将该目录下所有的源文件都关联起来
aux_source_directory(Demo.cpp CPP_LIST)

#生成一个名叫MyProject.exe的可执行文件
add_executable(${projectName} ${CPP_LIST})

文件结构和基本语法

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、指定要生成的可执行文件和其源文件:

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)

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."
)

变量和缓存

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}")

查找库和包

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)

include_directories() 和 target_include_directories()

在 CMake 中,include_directories() 和 target_include_directories() 都用于指定头文件的搜索路径,但它们的作用范围和使用方式有显著区别。

相同点:

  • 两者都用于添加头文件的搜索路径,编译器会在这些路径中查找 #include 指令中指定的头文件。
  • 两者都支持绝对路径和相对路径,相对路径是相对于当前 CMakeLists.txt 文件所在的目录。
  • 两者都可以用于指定公共头文件路径(PUBLIC)、私有头文件路径(PRIVATE)或接口头文件路径(INTERFACE)。

区别:

特性include_directories()target_include_directories()
作用范围全局作用域,影响所有目标(target)。仅作用于指定的目标(target)。
推荐使用场景适用于简单的项目或旧版 CMake 项目。适用于现代 CMake 项目,推荐优先使用。
目标关联性不直接关联到特定目标,可能影响所有目标。显式关联到特定目标,避免污染其他目标。
可维护性较差,容易导致全局路径污染。较好,路径与目标绑定,逻辑清晰。
作用域控制无法精确控制路径的作用范围。可以通过 PUBLICPRIVATEINTERFACE 精确控制路径的作用范围。
现代 CMake 推荐不推荐使用,除非有特殊需求。推荐使用,符合现代 CMake 的最佳实践。

三、CMake 构建流程

CMake 的构建流程分为几个主要步骤,从设置项目到生成和执行构建命令。

  1. 创建构建目录:保持源代码目录整洁。
  2. 使用 CMake 生成构建文件:配置项目并生成适合平台的构建文件。
  3. 编译和构建:使用生成的构建文件执行编译和构建。
  4. 清理构建文件:删除中间文件和目标文件。
  5. 重新配置和构建:处理项目设置的更改。

四、参考资料

CMake 基础 | 菜鸟教程

CMakeLists.txt 语法介绍与实例演练_android cmakelists.txt可以写多个吗-CSDN博客


文章转载自:

http://5Rxgp715.sgfnx.cn
http://qHQ1yBVO.sgfnx.cn
http://I9aoHRt6.sgfnx.cn
http://RytXb8X3.sgfnx.cn
http://zxffuyWY.sgfnx.cn
http://OkaFnidJ.sgfnx.cn
http://au6VhK9d.sgfnx.cn
http://e6fBt7lQ.sgfnx.cn
http://9G4QotND.sgfnx.cn
http://nWEndSDd.sgfnx.cn
http://fjI7Hlrv.sgfnx.cn
http://QSkttM6r.sgfnx.cn
http://jAyANHdC.sgfnx.cn
http://8D68Ko3S.sgfnx.cn
http://qkMTequI.sgfnx.cn
http://RS9nExo5.sgfnx.cn
http://OMURF0VS.sgfnx.cn
http://mJYLtan2.sgfnx.cn
http://9IMGlhpa.sgfnx.cn
http://eqKDYWMy.sgfnx.cn
http://1HmbQ4EE.sgfnx.cn
http://5hfmy3nn.sgfnx.cn
http://rBYhZ3Yj.sgfnx.cn
http://Nc2G0Xf8.sgfnx.cn
http://LnUE8qdC.sgfnx.cn
http://oW7t8puU.sgfnx.cn
http://M6PdzpNg.sgfnx.cn
http://dsOB7Jof.sgfnx.cn
http://tSfX7C68.sgfnx.cn
http://vv7pQKuD.sgfnx.cn
http://www.dtcms.com/wzjs/777386.html

相关文章:

  • 如何开通免费网站违法网站开发者
  • 网站建设平台用乐云践新怎么开发一款游戏
  • 公司设计网站有哪些网站获取qq
  • 兰州做网站哪家专业俄罗斯搜索引擎入口
  • 专业做酒类营销的网站有没有招代理商的网站
  • 网站做seo第一步在线登录qq聊天入口
  • 网站里做任务手机端网站ui做多少像素
  • 做网站美工需要会什么软件制作简单的网页代码
  • 问卷星网站开发市场调查问卷微信小程序商城源码
  • 新类型 网站广西哪里有网站建设
  • 手机购物网站 建站民众镇做网站公司
  • 门户网站开发价格wordpress新闻模板下载
  • 深圳宝安网站建设公司可免费注册的网站
  • 收录网站工具名者观看网站
  • 展示型企业网站建设wordpress添加全屏广告
  • 做公益网站有什么要求市场营销策划属于什么行业
  • 石家庄建站源码网站开发尾款如何做账
  • 网站定制分享商城类网站模板
  • 廊坊网站建设-纵横网络 网站正规的网站制作哪个好
  • 上海金桥建设监理有限公司网站网站开发 太原
  • 宁波网站推广排名淘宝如何刷关键词增加权重
  • 天津大型网站建设报价公司页面seo优化
  • 个人网站 cmswordpress数据备份还原
  • 网站制作的地方网站推广 软件
  • 苏州市建设局老网站企业网站打不开了
  • 网站模版 免费下载wordpress 有道云笔记
  • 为什么网站打开老是提示建设中wordpress 主题 相册
  • dede视频网站模板石家庄369招聘信息网
  • 网站页面如何设计接网站 建设
  • 网站建设方案打包网站建设培训班学费