CMake--使用教程基础篇

简介

  Cmake很是好的一个工具,可跨平台使用,是进行项目构建的一把好手,对于一个工具而言,仍是要以使用目的为导向的,掌握最实用,应用范围最广的功能便可。git

安装

  做为跨平台应用,谈到安装的话,就须要考虑Linuxwindows了,对于Linux而言,这已经不是什么问题了,如今不少开发版本都是自带CMake了,但可能版本不是最新的,只须要根据你的要求选择下是否须要进行升级便可。
  不少库在windows的安装与配置环节是至关困难的,可是Cmake仍是比较人性化的,可能前期已经考虑到这个问题了,所在,你只须要在github找到它,下载Release下对应的版本便可,安装即用,没有配置烦恼。github

目标功能

  本人学习Cmake主要实现的目标为:windows

  • 可以编译一个独立的*.cpp;
  • 可以实现不一样路径下的*cpp编译在一块儿;
  • 能调用本身生成的*.so与*.h
目标1

  编译某一个*.cpp, 文件结构以下:工具

T1/
| -- CMakeLists.txt
| -- build /
| -- main.cpp

CMakeLists.txt的文件为:学习

PROJECT (TEST)
cmake_minimum_required(VERSION 3.12) #camke版本号
AUX_SOURCE_DIRECTORY(. SRC_LIST) #将./下的全部*.cpp加入到SRC_LIST中
ADD_EXECUTABLE(hello ${SRC_LIST})
目标2

  编译多个*.cpp,文件结构以下:ui

T2
| -- CMakeList.txt 
| -- main.cpp
| -- build
| -- src 
    -- CMakeList.txt  
    -- test.h
    -- test.cpp

CMakeLists.txt文件为:code

PROJECT(main)
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
ADD_SUBDIRECTORY(src)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS})
TARGET_LINK_LIBRARIES(main TEST)

第二个CMakeLists.txt文件为:开发

AUX_SOURCE_DIRECTORY(. DIR_TEST_SRC)
#generate *.so
ADD_LIBRARY(TEST SHARED ${DIR_TEST_SRC})
目标3

  调用*.so, *.h,文件结构:it

T3
| -- include
    --  test.h
| -- libs
    -- libTEST.so
| -- CMakeLists.txt
| -- main.cpp

CMakeLists.txt的文件为:编译

PROJECT(main)
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
INCLUDE_DIRECTORIES(./include)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS})
#绝对路径添加 *.so
TARGET_LINK_LIBRARIES(main /home/utech/myso/t3/libs/libTEST.so)

  上述代码都是最简单最基本的语句,若是想要执行某些文件的输出位置等操做,还须要继续深刻学习下。

操做流程

  由于windows下是有gui的,能够经过界面操做,相对来讲比较简答,因此在这里介绍下Linux下的使用:
首先,在根目录下创建并进入build的文件夹:

mkdir build
cd build

  而后执行Cmake命令,记得后面要加路径,即CMakeLists.txt所在的地方,例如 ../就说明是在上层目录中:

cmake ../

  最后在根目录下执行make命令便可:

make -j8

  执行完上述几条代码,就会生成可执行文件了。

相关文章
相关标签/搜索