芜湖建设网站公司开贴纸网站要怎么做

张小明 2026/1/10 9:24:47
芜湖建设网站公司,开贴纸网站要怎么做,企业网站建设规划书,软件公司网站系统集成建设CMake 是一个跨平台的自动化构建系统#xff0c;用于管理软件构建过程。它使用独立于编译器的配置文件#xff08;CMakeLists.txt#xff09;来定义构建规则#xff0c;然后生成对应平台的本地构建文件#xff08;如 Makefile、Visual Studio 项目等#xff09;。 核心特…CMake 是一个跨平台的自动化构建系统用于管理软件构建过程。它使用独立于编译器的配置文件CMakeLists.txt来定义构建规则然后生成对应平台的本地构建文件如 Makefile、Visual Studio 项目等。核心特性1.跨平台支持Windows: 生成 Visual Studio 项目Linux/Unix: 生成 MakefilemacOS: 生成 Xcode 项目其他Ninja、MinGW 等2.主要功能模块CMake: 核心配置和生成工具CTest: 测试驱动工具CPack: 打包工具基本工作流程编写 CMakeLists.txt → cmake 配置生成构建系统文件 → 原生构建工具编译如 make/ninja/msbuild简单示例# CMakeLists.txt 最小示例 cmake_minimum_required(VERSION 3.10) project(MyProject VERSION 1.0) add_executable(myapp main.cpp)关键概念目标Targets# 创建可执行文件 add_executable(myapp main.cpp) # 创建库 add_library(mylib STATIC lib.cpp) # 静态库 add_library(mylib SHARED lib.cpp) # 动态库 add_library(mylib INTERFACE) # 接口库仅头文件库变量# 设置变量 set(MY_VARIABLE value) # 缓存变量可在 GUI 中修改 set(USE_FEATURE ON CACHE BOOL 启用特性) # 环境变量 set(ENV{PATH} /usr/local/bin:$ENV{PATH}) # 预定义变量 message(项目源目录: ${CMAKE_SOURCE_DIR}) message(构建目录: ${CMAKE_BINARY_DIR})条件判断if(WIN32) message(Windows 平台) elseif(APPLE) message(macOS 平台) elseif(UNIX) message(Linux/Unix 平台) endif() if(CMAKE_BUILD_TYPE STREQUAL Debug) set(DEBUG_FLAGS -g -O0) endif()循环# foreach 循环 foreach(item IN ITEMS a b c) message(项目: ${item}) endforeach() # 遍历文件列表 file(GLOB SOURCE_FILES src/*.cpp) foreach(src_file IN LISTS SOURCE_FILES) message(源文件: ${src_file}) endforeach()现代 CMake 最佳实践1.使用目标属性而非全局设置# 推荐做法现代 CMake add_library(mylib src/lib.cpp) target_include_directories(mylib PUBLIC $BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include $INSTALL_INTERFACE:include ) target_compile_features(mylib PUBLIC cxx_std_17) target_link_libraries(mylib PUBLIC Threads::Threads) # 避免使用传统方式 include_directories(include) # 不推荐 link_directories(lib) # 不推荐2.依赖管理# 查找系统库 find_package(OpenCV REQUIRED COMPONENTS core imgproc) # 使用 FetchContent 获取外部项目 include(FetchContent) FetchContent_Declare( googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG release-1.11.0 ) FetchContent_MakeAvailable(googletest) # 链接库 target_link_libraries(myapp PRIVATE OpenCV::opencv GTest::gtest)常用命令速查项目配置命令cmake_minimum_required(VERSION 3.10) # 指定 CMake 最低版本 project(MyProject # 定义项目 VERSION 1.0.0 DESCRIPTION 我的项目 LANGUAGES C CXX ) # 设置 C 标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF)文件操作命令# 收集源文件 file(GLOB SOURCES src/*.cpp src/*.c) file(GLOB_RECURSE ALL_SOURCES src/**/*.cpp) # 复制文件 configure_file(config.h.in config.h) # 配置头文件 file(COPY data/ DESTINATION ${CMAKE_BINARY_DIR}/data)测试支持enable_testing() # 启用测试 add_test( NAME MyTest COMMAND mytest_exe arg1 arg2 ) # 添加测试用例 include(CTest) add_test(NAME FeatureTest COMMAND myapp --test-feature)典型项目结构myproject/ ├── CMakeLists.txt # 根 CMake 文件 ├── README.md ├── LICENSE ├── cmake/ # CMake 模块文件 │ ├── FindMyLib.cmake │ └── Config.cmake.in ├── include/ # 公共头文件 │ └── myproject/ │ └── mylib.h ├── src/ # 源代码 │ ├── CMakeLists.txt │ ├── main.cpp │ └── mylib.cpp ├── tests/ # 测试代码 │ ├── CMakeLists.txt │ └── test_mylib.cpp ├── examples/ # 示例代码 │ ├── CMakeLists.txt │ └── example1.cpp └── external/ # 外部依赖可选 └── CMakeLists.txt构建步骤示例# 1. 创建构建目录并进入mkdirbuildcdbuild# 2. 配置项目生成构建文件cmake..-DCMAKE_BUILD_TYPERelease -DUSE_FEATUREON# 3. 编译项目cmake --build.--config Release# 4. 运行测试ctest -C Release --verbose# 5. 安装可选cmake --install.--prefix /usr/localCMake 的优势真正的跨平台同一配置支持 Windows、Linux、macOS 等构建系统生成器不直接构建而是生成 Makefile、.sln 等依赖管理强大的 find_package 和现代 FetchContent模块化支持大型项目的模块化组织IDE 集成与 VS、CLion、VS Code 等完美集成活跃社区丰富的第三方模块和文档学习路径建议初级阶段掌握基本语法创建简单可执行文件中级阶段学习库的创建和链接理解 PUBLIC/PRIVATE/INTERFACE高级阶段掌握安装和打包编写 Find 模块使用生成器表达式专家阶段深入理解 CMake 内部机制编写复杂项目配置常用生成器表达式# 条件表达式 target_compile_definitions(mylib PRIVATE $$CONFIG:Debug:DEBUG_MODE1 $$PLATFORM_ID:Windows:WINDOWS_PLATFORM ) # 安装路径相关 $INSTALL_INTERFACE:include # 安装时的接口路径 $BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include # 构建时的接口路径调试 CMake# 打印变量值 message(STATUS CMAKE_VERSION: ${CMAKE_VERSION}) message(DEBUG 调试信息) # 变量追踪 variable_watch(CMAKE_PREFIX_PATH) # 打印所有变量 get_cmake_property(vars VARIABLES) foreach(var ${vars}) message(${var} ${${var}}) endforeach()提示CMake 3.0 版本引入了现代 CMake 概念建议使用 CMake 3.10 或更高版本开始新项目并遵循基于目标的编程模式。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

鹤壁市住房和城乡建设局网站wordpress伪静态老是显示首页

Windows文件系统与网络功能深度解析 1. 文件系统加密解密机制 1.1 解密过程 当用户打开加密文件时,解密过程便开始。NTFS在打开文件时会检查其属性,接着执行EFS驱动中的回调函数。EFS驱动读取与加密文件关联的$EFS属性,为此调用NTFS为EFS导出的支持函数。NTFS完成打开文件…

张小明 2026/1/10 4:46:05 网站建设

歙县建设银行网站江宁交通建设集团网站

Linly-Talker 能否接入 Dialogflow 实现多轮对话逻辑? 在虚拟客服、数字员工等实际业务场景中,用户不会只问一句“你好”,然后满意地离开。他们更可能说:“我想预约下周二的心理咨询……对,下午三点左右……需要带什么…

张小明 2026/1/10 3:14:17 网站建设

使用他人注册商标做网站深圳关键词排名seo

TimelineJS终极指南:快速实现网站动态时间轴集成 【免费下载链接】TimelineJS 项目地址: https://gitcode.com/gh_mirrors/tim/TimelineJS 想要为你的网站添加引人入胜的动态时间线组件吗?TimelineJS作为一款强大的开源工具,能够轻松…

张小明 2026/1/8 20:38:08 网站建设

佛山个人制作网站公司wordpress全图水印

甲醛消除材料行业技术突破:恒清石的多维创新实践行业痛点分析当前甲醛消除材料领域面临三大技术挑战:其一,长效性不足,传统活性炭材料吸附饱和后易二次释放,果冻凝胶类产品有效期普遍不足3个月;其二&#x…

张小明 2026/1/8 20:38:04 网站建设

网站制作ppt阿里快速建站

AI编剧AI配音联动:完整内容生成链条初现雏形 在短视频日更、虚拟偶像直播频繁出圈的今天,内容创作者面临的最大挑战或许不再是“有没有创意”,而是“能不能快速交付”。一个爆款视频背后,往往需要剧本撰写、角色配音、音画对齐、后…

张小明 2026/1/8 20:38:02 网站建设

大连手机自适应网站建设wordpress在哪儿设置关键词和描述

在智能网联汽车开发中,CAN FD与车载以太网多协议并发的测试场景日益普遍,但传统分散式测试设备常因系统集成复杂、数据处理能力不足导致数据丢包、延迟波动,影响测试准确性。面对这一挑战,虹科车辆网络通讯测试主板HKIC1-MBM2100通…

张小明 2026/1/10 12:50:30 网站建设