美文网首页
cmake初探

cmake初探

作者: wallace_264c | 来源:发表于2019-01-18 18:06 被阅读0次

    本文主要是希望通过使用cmake构建一个简单的工程,来学习cmake的一些指令
    存在如下的目录结构,其中include存放头文件,src存放源码,lib存放库文件(静态或动态库)

    ├── CMakeLists.txt
    ├── include
    │   └── sum.h
    ├── lib
    ├── src
    │   ├── main.cpp
    │   └── sum.cpp
    
    

    下面通过三种方法构建工程:

    1、直接编译源码

    cmake_minimum_required (VERSION 2.6)
     
    project (Helloworld)
    
    INCLUDE_DIRECTORIES(include)
    
    SET(SRC src/main.cpp src/sum.cpp)
    
    ADD_EXECUTABLE(Helloworld ${SRC})
    
    

    2、通过生成静态库,链接到可执行文件

    首先通过

    cmake_minimum_required (VERSION 2.6)
     
    project (Helloworld)
    
    SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
    
    INCLUDE_DIRECTORIES(include)
    
    SET(SRC src/main.cpp)
    
    add_library(sum STATIC src/sum.cpp)
    

    生成静态库,然后通过调用静态库构建工程

    cmake_minimum_required (VERSION 2.6)
     
    project (Helloworld)
    
    INCLUDE_DIRECTORIES(include)
    
    SET(SRC src/main.cpp)
    
    link_libraries("/Users/zhang/Desktop/test/lib/libsum.a")
    
    ADD_EXECUTABLE(Helloworld ${SRC})
    

    3、通过生成动态库,链接到可执行文件

    生成动态库方法同2,只不过需要把STATIC改成SHARED

    add_library(sum SHARED src/sum.cpp)
    

    链接方式为

    link_libraries("/Users/zhang/Desktop/test/lib/libsum.dylib")
    

    常用指令

    1、set(target path):设置环境变量
    2、include_directories(path):添加头文件路径
    3、link_directories(path):添加库文件路径
    4、link_library(path/xxx.so或者.a, .dylib):添加链接库
    5、add_library(target [SHARED/STATIC] source):生成库文件
    6、add_executable(target source): 生成可执行文件

    相关文章

      网友评论

          本文标题:cmake初探

          本文链接:https://www.haomeiwen.com/subject/bvxodqtx.html