CMake环境搭建

CMake教程:\Tools\Work\cmake
CMake官方文档:https://cmake.org/cmake/help/latest/
一、基础介绍
    1、可以用于引入第三方库,例如:配置openCV环境
    set(OpenCV_DIR /Libs/opencv)
    find_package(OpenCV REQUIRED)
    
    2、用于c/c++程序构建
    
二、环境配置
    1、Linux
        sudo apt install gcc g++ make
    2、windows
        安装工具MinGW,模仿Linux的操作内核
        w64devkit: https//github.com/skeeto/w64devkit/releases
        
        安装cMake: www.cmake.org/download
        
    3、ubuntu
        sudo apt install cmake
        
    4、官方文档:https://cmake.org/cmake/help/latest/
       下载练习教程www.cmake.org上找到resource->document and community->3.26->cmake tutorial->this archive
        参照https://www.bilibili.com/video/BV1hz4y1H7YA/?p=3&spm_id_from=pageDriver&vd_source=1679b3ba961499787d9a94a675c509aa
        
        解压下载的\Tools\Work\cmake\cmake-3.26.5-tutorial-source练习代码,在step1中
        创建build目录
        【练习1】 step1目录
        修改CMakeLists.txt文件
        cmake_minimum_required(VERSION 3.10)    // 指定版本
        project(Tutorial)                        // 指定项目名称
        add_executable(Tutorial tutorial.cxx)    // 添加项目文件 *.cxx
        
        路径栏执行cmd.exe
        cmake --version
        rd /S /Q .                        // 清空当前目录  Remove-Item -Path .\* -Recurse -Force【在目录build中删除所有内容】
        cmake -G "MinGW Makefiles"  ..    // 在build中生成makefile文件; 直接cmake不带参数,生成vs的项目;
                                        // 不指定 -G 选项,要设置环境变量(在视频中找吧)
        make(或者 mingw32-make)            // 有makefile就可以make可执行程序了;如果生成了vs项目,
                                        // 使用"cmake --build ."
                                        // 来构建可执行程序,这是通用写法,什么项目都可以这么写
        ./Tutorial.exe 100
        
        【练习2】 step1目录
        在cmakelist.txt中指定C++11新特性
        在项目中创建build目录并进入,打开cmd执行下面两条命令
        rd /S /Q .                        // 清空当前目录
        cmake -G "MinGW Makefiles"  ..    // 生成mingw项目
        cmake --build .                    // 生成.exe
        
        【练习3】 step1目录
        在cxx文件中使用cmakelist.txt中定义的变量
        cmake -G "MinGW Makefiles"  ..    // 生成mingw项目
        当执行过上面语句后, 在build文件夹中有cmakecache.txt文件,可以直接使用"cmake ."进行重新生成
        
        在cmakelist中设置程序版本号 project(Tutorial VERSION 3.58)
        在cmakelist中输出版本信息 "message(STATUS "${Tutorial_VERSION_MAJOR}")    # 3
        在cmakelist中输出版本信息 "message(STATUS "${Tutorial_VERSION_MINOR}")    # 58
        
        【练习4】 step2目录
        使用CMake创建动态库,然后,在主程序中调用!
        
        【练习5】
        链接库配置成可选项,在cmakelist.txt文件中定义是否使用!
        在命令行指定makelist中的变量值
        cmake .. -DUSE_MYMATH=ON        // -D选项    USE_MYMATH是变量名
        【练习6】
        1、配置阶段
        cmake -G "MinGW Makefiles" ..
        检查编译器和工具链是否可用,并设置编译器选项和连接选项
        检查系统库和第三方库是否可用,并设置库的路径和连接选项
        检查项目的源代码文件并设置编译选项和连接选项
        生成makefile 或者 ide 的项目文件
        根据不同平台和编译器生成不同的makefile或者项目文件
        2、生成阶段
        cmake --build .
        根据makefile或者项目文件中的指令和参数来编译源代码文件,生成目标文件
        根据makefile 或者项目项目文件中的指令和参数来连接目标文件,生成可执行文件或库文件
        
        生成器表达式    CMake生成器表达式是一种特殊的语法,用于在CMake构建系统中动态地生成构建规则。它们可以用于指定编译器选项、链接选项等。
        本节先学习其中两种表达式:
        $<condition:true string>
        。如果 condition 为1,则此表达式结果为 true string
        如果 condition 为0,则此表达式结果为空
        $<COMPILE_LANGAND_ID:language, compiler_ids>
        如果当前所用的语言与 language 一致且编译器ID在 compiler_ids 的列表中,则表达式值为1,否则为0
        language 值主要为 cxx 和 c
        compiler_ids 主要有GNU、Clang、MSVC等,有多个时用逗号隔开
        命令:cmake --build . --target ged
        【练习7】
        step5
        安装规则练习
        install(TARGETS Tutorial DESTINATION bin)
        cmake --install .        // 安装到C:\Program Files (x86)\Tutorial\bin下 
        cmake --install . --prefix=\cmake\cmake-3.26.5-tutorial-source\Step5\install
        cmake --install . --prefix=\Tools\Work\cmake\cmake-3.26.5-tutorial-source\Step5\install
        自动测试
        ctest -N    //输出一个有几个测试
        ctest -VV   // 执行测试
        【练习8】
        step7
        系统环境检测:主要是一些特有的函数检测,并不是系统环境的检测!!!
        step8
        自定义命令与输出文件
        where g++
        路径:\i686-7.3.0-release-posix-dwarf-rt_v5-rev0\mingw32\bin\g++.exe
        路径:\mysys2\mingw64\bin\g++.exe
        
        【练习9】
        打包程序
        windows需要安装NSIS软件, nullsoft installer
        打开cmd.exe
        >cpack --help
        可以看到输出中有NSIS项:代表打包成.exe文件;
                        zip项: 打包成压缩包的格式zip,需要手动指定
        先安装NSIS软件,之后使用下面的命令打包:
        >cpack    // 默认的打包命令,打包成.exe文件
        >cpack -G ZIP // 打包成zip压缩包    不需要nsis软件
        >cpack --config CPackSourceConfig.cmake // 打包源码 .tar.gz
        【练习10】
        编译并调用动态库程序
        通用的clean方法
        cmake --build . --target clean
        【练习11】
        【练习12】

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值