网站的基本设置网页游戏传奇世界网页版
2026/2/12 4:33:22 网站建设 项目流程
网站的基本设置,网页游戏传奇世界网页版,附近最好的装修公司,百度 门户网站CMakeLists.txt 文件 CMakeLists.txt 是 CMake 的配置文件#xff0c;用于定义项目的构建规则、依赖关系、编译选项等。每个 CMake 项目通常有一个或多个 CMakeLists.txt 文件。 文件结构和基本语法 1. 指定 CMake 最低版本 cmake_minimum_required(VERSION 3.10)2. 定义项目 …CMakeLists.txt 文件CMakeLists.txt 是 CMake 的配置文件用于定义项目的构建规则、依赖关系、编译选项等。每个 CMake 项目通常有一个或多个 CMakeLists.txt 文件。文件结构和基本语法1.指定 CMake 最低版本cmake_minimum_required(VERSION 3.10)2.定义项目project(MyProject CXX) # 项目名和语言3.创建可执行文件add_executable(MyExecutable main.cpp other_file.cpp)4.创建库# 静态库 add_library(MyLibrary STATIC library.cpp) # 动态库 add_library(MySharedLibrary SHARED library.cpp)5.链接库target_link_libraries(MyExecutable MyLibrary)6.添加包含目录include_directories(${PROJECT_SOURCE_DIR}/include)7.设置变量set(CMAKE_CXX_STANDARD 11) set(MY_VAR Hello World)8.设置目标属性target_include_directories(MyExecutable PRIVATE ${PROJECT_SOURCE_DIR}/include )9.安装规则install(TARGETS MyExecutable RUNTIME DESTINATION bin )10.条件语句if(CMAKE_BUILD_TYPE STREQUAL Debug) message(Debug build) else() message(Release build) endif()11.自定义命令add_custom_command( TARGET MyExecutable POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo Build completed. )完整实例cmake_minimum_required(VERSION 3.10) project(MyProject CXX) # 添加可执行文件 add_executable(MyExecutable main.cpp) # 设置 C 标准 set(CMAKE_CXX_STANDARD 11)变量系统普通变量set(MY_VAR Hello World) message(STATUS Variable is ${MY_VAR})缓存变量用户可配置set(MY_CACHE_VAR DefaultValue CACHE STRING A cache variable )外部库管理查找系统库# 基本查找 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 库使用示例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 vs target_include_directories特性include_directories()target_include_directories()作用范围全局影响所有目标仅作用于指定目标现代 CMake 推荐❌ 不推荐✅ 推荐使用可维护性较差易污染全局较好逻辑清晰作用域控制无法精确控制支持 PUBLIC/PRIVATE/INTERFACE目标关联性不关联特定目标显式关联特定目标使用建议推荐使用target_include_directories()避免使用include_directories()除非遗留项目示例对比# ❌ 传统方式不推荐 include_directories(include) # ✅ 现代方式推荐 target_include_directories(MyTarget PUBLIC include # 使用者也需要 PRIVATE src # 仅内部需要 INTERFACE . # 接口需要 )关键要点最小版本始终指定cmake_minimum_required明确项目使用project()定义项目名和语言目标为中心优先使用target_xxx()系列命令变量区分理解普通变量和缓存变量的区别现代实践遵循目标属性模式避免全局设置

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询