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

网站加栏目润滑油东莞网站建设

网站加栏目,润滑油东莞网站建设,琚宾设计公司官网,中国工商注册网官方网址一、Cmake 简介 cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。 本文供C软件开发者入门学习参考#xff0c;主要内容来自网络。 下载地址#xff1a; 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 项目推荐优先使用。目标关联性不直接关联到特定目标可能影响所有目标。显式关联到特定目标避免污染其他目标。可维护性较差容易导致全局路径污染。较好路径与目标绑定逻辑清晰。作用域控制无法精确控制路径的作用范围。可以通过 PUBLIC、PRIVATE、INTERFACE 精确控制路径的作用范围。现代 CMake 推荐不推荐使用除非有特殊需求。推荐使用符合现代 CMake 的最佳实践。 三、CMake 构建流程 CMake 的构建流程分为几个主要步骤从设置项目到生成和执行构建命令。 创建构建目录保持源代码目录整洁。使用 CMake 生成构建文件配置项目并生成适合平台的构建文件。编译和构建使用生成的构建文件执行编译和构建。清理构建文件删除中间文件和目标文件。重新配置和构建处理项目设置的更改。 四、参考资料 CMake 基础 | 菜鸟教程 CMakeLists.txt 语法介绍与实例演练_android cmakelists.txt可以写多个吗-CSDN博客
http://www.w-s-a.com/news/2968393/

相关文章:

  • 企业网站建设一条龙全包罗定城乡建设局网站
  • 做网站宣传百度权重查询网站
  • 南京网站建设公司哪家好广东深圳龙岗区邮政编码
  • 网站游戏正规网站建设腾讯服务器
  • 河北集团网站建设别墅设计
  • 云南固恒建设集团有限公司网站克拉玛依建设局网站
  • 怎么用阿里云建网站制作php网站
  • 做网站最好的网络公司公司网站域名是什么
  • 滨州建设局网站自己怎么免费做网站
  • 宝塔设置加速wordpress站点在线商城
  • 个人网站建设免费主机好乐买的网站推广方式
  • 网站系统升级需要多久好123上网主页
  • 男女做羞羞事漫画网站免费小型网站建设步骤
  • 空间购买后打不开网站上海找做网站公司好
  • 国内设计网站排名php网站建设素材
  • 网站后台更新为什么前台不现实柳州做网站人员
  • 用了wordpress的电商网站优秀网文
  • 服务器租用网站自动划分空间学电脑培训班多少一个月
  • 凡科网电脑版怎么做网站深圳市住房和建设局统一认证平台
  • 建设视频网站费用江西app网站建设
  • 安徽网站开发培训网站模版带后台
  • 吉林住房和城乡建设厅网站网站建设推广一对一服务
  • 网站主页被做跳转帝国cms网站地图生成
  • 做网站公司怎么样官方网站建设对比
  • 个人电脑建立网站威海推广
  • 企业网站模块介绍类似于百度快照的网站
  • 长沙大型网站建设公司企业网站如何上存
  • 河南县wap网站建设公司京东商城网站域名
  • 电子商务网站规划开发实训教程一流小说网站模板
  • 广州制作网站开发教做软件的网站