• CMake指南


    版权申明:

    本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明

    博客园:https://www.cnblogs.com/MogooStudio/
    csdn博客:https://blog.csdn.net/nmjkl001/
    知乎:https://www.zhihu.com/people/MogooStudio/
    简书:https://www.jianshu.com/u/9547c81ca54e
    segmentfault:https://segmentfault.com/u/mogoostudio

    CMakeLists.txt 文件解析

    • cmake verson,指定cmake版本
        cmake_minimum_required(VERSION 3.2)
    
    • project name,指定项目的名称,一般和项目的文件夹名称对应
        PROJECT(test_sqrt)
    
    • head file path,头文件目录
        INCLUDE_DIRECTORIES(
        include
        )
    
    • source directory,源文件目录
        AUX_SOURCE_DIRECTORY(src DIR_SRCS)
    
    • set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
        SET(TEST_MATH
        ${DIR_SRCS}
        )
    
    • add executable file,添加要编译的可执行文件
        ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
    
    • add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
        TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
    

    编译阶段

    • make 命令默认执行的是 make all,make all 有四个阶段: prepare test compile package
        make prepare : 只会执行prepare阶段,这个阶段主要是下载编译依赖
        make test : 只会执行test阶段,这个阶段主要是做单元测试
        make compile : 只会执行compile阶段,这个阶段主要是进行编译
        make package : 只会执行packege阶段,这个阶段会把编译产出都copy到output目录中
        make install : 只会执行install阶段,这个阶段是把编译产出放到$GOPATH/bin目录下,这个不是必须的
        make clean : 只会执行clean阶段,这个阶段把编译输出的一些文件删除,恢复到编译之前的状态
    

    基本实践

    1. 创建项目文件夹hello
    2. 文件夹hello内,创建构建目录build
    3. 文件夹hello内,创建源代码(main.cpp)
    4. 文件夹hello内,创建CMakeLists.txt
       project(hello)
       add_executable(hello main.cpp)
      
    5. 通过cmake命令构建项目:终端内执行命令:cmake PATH,这里执行
       cd build
       cmake ..
      
    6. 通过cmake的gui构建项目
      
      打开cmake gui设置source和build
      点击Configure设置platform,再点击Configure
      点击Genrate
      点击OpenProject
      

    构建可执行程序(待完善)

    构建库程序(待完善)

    我的联系方式:

    QQ:2161044579
    邮箱:mogoostudio@outlook.com
    Github:https://github.com/MogooStudio

  • 相关阅读:
    HBase 5、Phoenix使用
    HBase 4、Phoenix安装和Squirrel安装
    HBase 3、HBase练习题
    HBase 2、HBase安装与初试牛刀
    HBase 1、HBase介绍和工作原理
    Hadoop 7、MapReduce执行环境配置
    Hadoop 6、第一个mapreduce程序 WordCount
    Hive 11、Hive嵌入Python
    Hive 12、Hive优化
    Hive 10、Hive的UDF、UDAF、UDTF
  • 原文地址:https://www.cnblogs.com/MogooStudio/p/11598487.html
Copyright © 2020-2023  润新知