CMake 在工程管理中的使用 Window/MacOS

server/2024/9/24 2:00:40/

CMake__WindowMacOS_0">CMake 在工程管理中的使用 Window/MacOS

是什么

CMake 是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。

编译工具

Visual Studio 自动解析编译 cmakelists.txt

编译与链接

编译:将当前的C++/C 代码通过编译器,编译位目标代码的过程。

链接:将多个编译好的目标代码,相互进行链接,形成一个完整的可执行程序。

CMake工具就可以完成编译与链接的配置工作,让程序猿可以跨平台编译链接程序

动态库与静态库

静态链接库:包含代码与数据的文件,可在程序 编译期间 链接入程序

动态链接库:包含代码与数据的文件,可在程序执行期间被动态加载

动态链接库有利于 模块/插件 的升级

CMake__19">CMake 文件结构

CMakeList.txt 是整个CMake 工程描述文件,基本内容如下:

#需求的最低CMake 程序版本
cmake_minimum_required(VERSION 3.5)#本工程的名字
project(CMakeDemo)#本工程支持的C++ 版本
set(CMAKE_CXX_STANDARD 11)#本工程主程序的文件以及程序输出的名称
add_executable(CMakeDemo "main.cpp")

main.cpp

#include <iostream>int main(){std::cout<<"Hello World "<<std::endl;return 0;
}

其他设置

#需求的最低CMake 程序版本
cmake_minimum_required(VERSION 3.5)#本工程的名字
project(CMakeDemo)#本工程支持的C++ 版本
set(CMAKE_CXX_STANDARD 11)#搜索所有的Cpp 加入到SRCS变量中 SRCS source的缩写
aux_source_directory(. SRCS)#本工程主程序的文件以及程序输出的名称
add_executable(CMakeDemo ${SRCS})

MacOS + Xcode 下的使用

创建编译生成的目录文件。程序文件结构如下:

ProjectbuildCMakeLists.txtmain.cpp

打开终端 进入build文件夹 执行下面指令:

cmake .. -G "Xcode"

等待执行完成,则会输出如下内容:

 build % cmake .. -G "Xcode"
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (10.2s)
-- Generating done (0.0s)
-- Build files have been written to: /Project/OpenGL/CMakeDemo/build

进入到build目录,则可见生成的Xcode 工程项目

Window + VS 下的使用

直接使用VS —>文件打开----->Cmake 选择CMakeList.txt 文件则会自动的解析 生成工程


http://www.ppmy.cn/server/42875.html

相关文章

Pytest框架实战二

在Pytest框架实战一中详细地介绍了Pytest测试框架在参数化以及Fixture函数在API测试领域的实战案例以及具体的应用。本文章接着上个文章的内容继续阐述Pytest测试框架优秀的特性以及在自动化测试领域的实战。 conftest.py 在上一篇文章中阐述到Fixture函数的特性&#xff0c;第…

集中抄表电表是什么?

1.集中抄表电表&#xff1a;简述 集中抄表电表&#xff0c;又称为远程抄表系统&#xff0c;是一种现代化电力计量技术&#xff0c;为提升电力行业的经营效率和客户服务质量。它通过自动化的形式&#xff0c;取代了传统人工抄水表&#xff0c;完成了数据信息实时、精确、高效率…

Python ❀ 使用代码解决今天中午吃什么的重大生存问题

1. 环境安装 安装Python代码环境参考文档 2. 代码块 import random# 准备一下你想吃的东西 hot ["兰州拉面", "爆肚面", "黄焖鸡", "麻辣香锅", "米线", "麻食", "羊肉泡馍", "肚丝/羊血汤&qu…

【编译原理】词法分析器的设计与实现

一、实验目的 通过设计编制调试一个具体的词法分析程序&#xff0c;加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程&#xff0c;从输入的源程序中&#xff0c;识别出各个具有独立意义的单词&…

kafka调优参考建议 —— 筑梦之路

这里主要是从不同使用场景来调优&#xff0c;仅供参考。 吞吐量优先 吞吐量优先使用场景如采集日志。 1. broker配置调优 num.partitions&#xff1a;分区个数&#xff0c;设置为与消费者的线程数基本相等 2. producer配置调优 batch.size 批量提交消息的字节数&#xff0c;…

GitHub的原理及应用详解(一)

本系列文章简介&#xff1a; GitHub是一个基于Git版本控制系统的代码托管平台&#xff0c;为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中&#xff0c;包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单…

【无标题】亚马逊5月24日宣布推出2024出口跨境物流加速器计划

亚马逊中国5月24日郑重宣布启动“2024亚马逊出口跨境物流加速器计划”&#xff0c;旨在依托其世界领先的物流网络和前沿技术&#xff0c;结合本土资源&#xff0c;不断优化跨境物流服务&#xff0c;以强化中国卖家在跨境物流供应链管理方面的能力&#xff0c;进而提升整体效率&…

MySQL 字段截取拼接

文章目录 前言需求&#xff1a;拼接函数&#xff1a;截取函数&#xff1a; 总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 需求&#xff1a; 将数据库中的…