cmake构建工具 初步01

记录下cmake学习过程,以后还会补充

  1. 单目录单文件
    demo1 目录下只有一个a1.cpp, 如下图
[root@localhost demo1]# tree
.
├── a1.cpp
└── CMakeLists.txt

编写CMakeLists.txt

  1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
  2 
  3 PROJECT(demo1)
  4 
  5 ADD_EXECUTABLE(demo1out a1.cpp)

命令行执行 cmake CMakeLists.txt, 会形成

CMakeCache.txt  CMakeFiles  cmake_install.cmake    Makefile

命令行执行make,就会编译出可执行文件demo1out

  1. 单目录多文件
    目录结构如图:
[root@localhost demo2]# tree
.
├── a1.cpp
├── CMakeLists.txt
├── p1.cpp
└── p1.h

编写CMakeLists.txt,

  1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
  2 
  3 PROJECT(demo2)
  4 #发现一个目录下所有的源代码文件并将列表存储在一个变量中,把当前目录下的所有源码文件名赋给变量SOURCE_DIR_1
  5 AUX_SOURCE_DIRECTORY(./ SOURCE_DIR_1) 
  6 
  7 ADD_EXECUTABLE(demo2out ${SOURCE_DIR_1})
  1. 多目录多文件
    a1.cpp 要使用 testlib目录下的文件编译成的静态库
[root@localhost demo3]# tree
.
├── a1.cpp
└── testlib
    ├── p1.cpp
    └── p1.h

先编写子目录testlib里面的CMakeLists.txt

root@localhost demo3]# tree
.
├── a1.cpp
├── CMakeLists.txt
└── testlib
    ├── CMakeLists.txt
    ├── p1.cpp
    └── p1.h

1)demo3/testlib/CMakeLists.txt

 1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
 2 
 3 AUX_SOURCE_DIRECTORY(./ SOURCE_DIR_1)
 4 
 5 ADD_LIBRARY(plib ${SOURCE_DIR_1})#默认生成静态库吧

2)demo3/CMakeLists.txt

  1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
  2 
  3 PROJECT(demo3)
  4 
  5 ADD_SUBDIRECTORY(./testlib) #添加子目录路径
  6 INCLUDE_DIRECTORIES(./testlib) #添加头文件路径
  7 AUX_SOURCE_DIRECTORY(./ SOURCE_DIR)
  8 
  9 ADD_EXECUTABLE(demo3out ${SOURCE_DIR})
 10 
 11 TARGET_LINK_LIBRARIES(demo3out plib) #链接库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值