团队介绍网站模板长沙的互联网网站公司

张小明 2026/1/11 12:20:45
团队介绍网站模板,长沙的互联网网站公司,多新闻怎么做扁平网站,微信文章 图片 wordpress文章目录cmake与makefile的区别CMake 常用命令详解基础配置命令1. 指定CMake最低版本2. 设置项目名称变量操作命令1. 普通变量定义与赋值2. 列表操作#xff08;添加元素#xff09;3. 预定义核心变量4. 字符串替换编译构建命令1. 添加头文件搜索路径2. 查找目录下的所有源码…文章目录cmake与makefile的区别CMake 常用命令详解基础配置命令1. 指定CMake最低版本2. 设置项目名称变量操作命令1. 普通变量定义与赋值2. 列表操作添加元素3. 预定义核心变量4. 字符串替换编译构建命令1. 添加头文件搜索路径2. 查找目录下的所有源码文件3. 添加可执行目标4. 链接库文件流程控制命令1. 文件存在性判断2. 循环遍历3. 打印日志/错误高级操作命令1. 执行自定义命令2. 添加子目录嵌套CMake3. 设置安装路径总结cmake与makefile的区别维度CMakeMakefile本质跨平台构建工具生成器编译规则脚本依赖Make工具执行核心作用自动生成适配不同平台/编译器的Makefile或VS工程、Ninja文件等定义源码编译的依赖关系、编译命令由Make解析执行跨平台性天然跨平台Windows/Linux/macOS语法统一平台相关如Windows需MinGW/MSYS语法依赖Make工具版本语法复杂度高层抽象语法如add_executable易维护底层脚本语法需手动写依赖、命令复杂项目易臃肿适用场景中大型/跨平台项目适配多编译环境小型Linux/Unix项目需精准控制编译流程执行逻辑先执行cmake生成构建文件再执行make编译直接执行make解析Makefile完成编译核心总结CMake是「构建文件生成器」通过跨平台语法生成适配不同环境的Makefile或其他构建文件Makefile是「编译规则文件」直接定义编译依赖和命令依赖Make工具执行仅适配类Unix环境。CMake 常用命令详解本文整理了CMake构建过程中最常用的核心命令涵盖版本设置、变量定义、项目配置、编译构建、安装部署等全流程方便快速查阅和使用。基础配置命令1. 指定CMake最低版本cmake_minimum_required(VERSION 3.1.3)作用限定构建当前项目所需的CMake最低版本低于该版本会直接报错确保语法和特性兼容。示例cmake_minimum_required(VERSION 3.20)推荐使用项目兼容的较高稳定版本2. 设置项目名称project(project_name) # 扩展指定项目语言和版本 project(project_name LANGUAGES C CXX VERSION 1.0.0)作用定义项目名称同时会自动生成PROJECT_NAME、PROJECT_VERSION等预定义变量。参数说明LANGUAGES指定项目支持的编程语言如C、CXX/C、Fortran等VERSION设置项目版本号。变量操作命令1. 普通变量定义与赋值# 单值赋值 set(variable content) # 多值赋值列表形式 set(variable content1 content2 content3) # 设置C标准核心常用 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 强制要求指定的C标准不兼容则报错作用定义自定义变量或修改CMake预定义变量支持单值/多值列表赋值。注意CMAKE_CXX_STANDARD用于指定编译时的C特性标准如11/14/17/20需配合CMAKE_CXX_STANDARD_REQUIRED确保生效。2. 列表操作添加元素# 初始化空列表 set(variable_name ) # 向列表追加元素 list(APPEND variable_name content1) list(APPEND variable_name content2 content3)作用管理列表类型变量常用于收集源码文件、头文件路径等。3. 预定义核心变量变量名说明CMAKE_CXX_STANDARD指定C编译标准如11、17CMAKE_CURRENT_BINARY_DIRCMake执行命令时的工作目录编译产物输出目录CMAKE_CURRENT_SOURCE_DIR当前CMakeLists.txt文件所在的目录CMAKE_INSTALL_PREFIX项目默认安装路径默认Unix为/usr/localWindows为C:\Program Files4. 字符串替换string(REPLACE .old .new dest_variable original_string.old)作用将源字符串中的指定子串替换为新子串并将结果存入目标变量。示例执行后dest_variable的值为original_string.new。编译构建命令1. 添加头文件搜索路径include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/third_party/include )作用指定编译器查找头文件的目录等价于GCC的-I参数。推荐用法现代CMake更推荐使用target_include_directories针对具体目标避免全局污染。2. 查找目录下的所有源码文件aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src src_files)作用递归查找指定目录下的所有源码文件.c/.cpp并将文件路径列表存入变量。注意若目录下文件结构复杂建议手动列出源码文件避免意外引入无关文件。3. 添加可执行目标add_executable(app_name ${src_files} main.cpp)作用指定编译生成的可执行文件名称并关联对应的源码文件。参数app_name为可执行文件名称后续为依赖的源码文件列表。4. 链接库文件target_link_libraries(app_name # 系统库/第三方库 pthread # 自定义库需先通过add_library定义 ${CMAKE_CURRENT_SOURCE_DIR}/lib/libxxx.a my_custom_lib )作用为指定目标链接依赖的库文件等价于GCC的-l参数。分类支持静态库.a、动态库.so/.dll优先链接系统库再链接自定义库。流程控制命令1. 文件存在性判断if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/config.h) message(FATAL_ERROR 配置文件config.h不存在请检查) endif()作用判断文件/目录是否存在配合if/endif实现条件逻辑。扩展支持EXISTS存在、NOT EXISTS不存在、IS_DIRECTORY是否为目录等判断条件。2. 循环遍历set(numbers 1 2 3 4 5) foreach(val IN LISTS numbers) message(STATUS 当前值${val}) endforeach()作用遍历列表中的每个元素执行循环体中的命令。语法foreach(变量 IN LISTS 列表变量)或foreach(变量 元素1 元素2)。3. 打印日志/错误# 普通状态提示编译时输出不中断 message(STATUS 当前编译目录${CMAKE_CURRENT_BINARY_DIR}) # 警告提示黄色输出不中断 message(WARNING 未指定C标准默认使用C11) # 致命错误红色输出中断编译 message(FATAL_ERROR 缺少核心依赖库请安装后重试)作用输出构建过程中的信息辅助调试和错误排查。高级操作命令1. 执行自定义命令add_custom_command( TARGET app_name # 关联到指定目标 PRE_BUILD # 执行时机编译目标前可选PRE_LINK/POST_BUILD COMMAND echo 开始编译app_name... # 要执行的指令 ARGS -n 编译时间$(date) # 指令参数 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.h # 依赖文件文件更新则重新执行 COMMENT 执行预编译检查... # 编译时打印的提示信息 )执行时机可选值PRE_BUILD目标编译前仅Visual Studio支持PRE_LINK编译完成后、链接前POST_BUILD链接完成后最常用。作用在构建流程的指定阶段执行自定义指令如脚本、系统命令。2. 添加子目录嵌套CMakeadd_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test EXCLUDE_FROM_ALL)作用指定子目录CMake会递归处理该目录下的CMakeLists.txt。参数EXCLUDE_FROM_ALL表示子目录目标不加入默认构建需手动指定构建。3. 设置安装路径# 安装可执行文件到指定目录 INSTALL(TARGETS app_name RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin # 可执行文件安装路径 LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib # 动态库安装路径Unix ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib # 静态库安装路径Unix ) # 安装头文件 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include )作用指定目标文件/头文件的安装路径执行make install时自动拷贝文件到对应目录。常用参数RUNTIME可执行文件Windows下的.exe、Unix下的可执行程序LIBRARY共享库.so/.dylibARCHIVE静态库.a。总结以上命令覆盖了CMake从基础配置、变量操作、编译构建到安装部署的核心场景基础配置cmake_minimum_required、project是每个CMakeLists.txt的必选开头现代CMake推荐优先使用target_*系列命令如target_include_directories、target_link_libraries替代全局命令降低耦合调试技巧通过message(STATUS)打印变量值排查路径、依赖等问题安装部署INSTALL命令配合CMAKE_INSTALL_PREFIX实现跨平台的安装路径控制。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

页面简单的网站模板免费下载学校的网站建设费如何入账

厌倦了在暗黑破坏神2重制版中重复刷怪?Botty这款像素级自动化工具将彻底改变你的游戏体验。无论你是想解放双手的休闲玩家,还是追求极限效率的硬核玩家,这份指南都将带你快速上手,5分钟完成配置,立即开启智能刷怪之旅&…

张小明 2026/1/8 15:39:38 网站建设

网站建网站建设网站站网站网站设计可以用性原则

文章目录前言一.声纹模型的功能二.技术实现2.1 业务侧-预处理阶段2.2 模型侧-模型处理2.2.1 技术实现细节2.2.1.1音频预处理2.2.1.2 VAD分片2.2.1.3 模型特征预测2.2.1.4聚类与日志生成2.1.2.5后处理三.结语前言 也许此刻的坚持无人喝彩,满是汗水与疲惫,…

张小明 2026/1/4 20:11:58 网站建设

南充公司做网站辽宁省建设工程信息网招标规定

在 Angular 应用开发中,组件通信是核心场景之一。父子组件可通过Input/Output轻松实现数据交互,但非父子组件(如兄弟组件、跨层级组件、无关联组件)的通信一直是高频痛点。本文将详解基于Service 注入 RxJS Subject的通信方案&am…

张小明 2026/1/4 20:11:26 网站建设

陕西宝陵建设集团网站文化网站设计经典案例

XUnity.AutoTranslator游戏翻译插件:从入门到精通的完整指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为一款功能强大的Unity游戏自动翻译插件,通过…

张小明 2026/1/7 13:12:03 网站建设

健身器材网站源码自己的网站可以做淘客吗

Containerd容器安全终极防护:三步构建坚不可摧的运行时环境 【免费下载链接】containerd containerd 是一个容器运行时和镜像生成工具,用于管理容器化应用程序的生命周期管理。 * 容器化应用程序管理、容器运行时和编排工具 * 有什么特点:容器…

张小明 2026/1/9 10:55:17 网站建设

网站建设海外网站开发到上线需要多久

PaddlePaddle镜像支持因果推断吗?Counterfactual分析尝试 在智能决策系统日益复杂的今天,企业不再满足于“模型预测用户会点击”,而是追问:“如果没推送这个广告,用户还会买吗?” 这类问题直指AI的深层能力…

张小明 2026/1/10 1:24:47 网站建设