cmakelist官方教程_CMake--使用教程基础篇

简介

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

安装

作为跨平台应用,谈到安装的话,就需要考虑Linux与windows了,对于Linux而言,这已经不是什么问题了,现在很多开发版本都是自带CMake了,但可能版本不是最新的,只需要根据你的要求选择下是否需要进行升级即可。

很多库在windows的安装与配置环节是相当困难的,但是Cmake还是比较人性化的,可能前期已经考虑到这个问题了,所在,你只需要在github找到它,下载Release下对应的版本即可,安装即用,没有配置烦恼。

目标功能

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

能够编译一个独立的*.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,文件结构如下:

T2

| -- CMakeList.txt

| -- main.cpp

| -- build

| -- src

-- CMakeList.txt

-- test.h

-- test.cpp

CMakeLists.txt文件为:

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,文件结构:

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

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

你可能感兴趣的:(cmakelist官方教程)