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


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

    是什么

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

    编译工具

    Visual Studio 自动解析编译 cmakelists.txt

    编译与链接

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

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

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

    动态库与静态库

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

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

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

    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 
    
    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 下的使用

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

    Project
    	build
    	CMakeLists.txt
    	main.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 文件则会自动的解析 生成工程

  • 相关阅读:
    EventLoop事件循环机制
    Linux tee 笔记221108
    Python3,9行代码,对比两个Excel数据差异,并把差异结果重新保存。
    注解开发定义bean和纯注解开发-依赖注入-管理第三方bean以及xml配置与注解对比
    数据分析案例-基于随机森林算法探索影响人类预期寿命的因素并预测人类预期寿命
    PLC之间无线通信-不用编程实现多品牌PLC无线通讯的解决方案
    【算法|贪心算法系列No.1】leetcode860. 柠檬水找零
    消息队列三|Kafka 如何做到高可用?
    进入Web3.0的元宇宙新纪元,科技巨头争先“跑马圈地”
    定位相关属性
  • 原文地址:https://blog.csdn.net/HeroGuo_JP/article/details/139089774