cmake、make、make install

如果经常在Linux系统下面与C、C++文件打交道的话,一定经常遇到四/五步走:

mkdir build
cd build
cmake ..
make
// 如果是安装依赖库的时候会用到
make install

前两步并不难理解,就是想把对应项目的编译文件放在build目录下,这样便于管理。如果要传送源文件,可以直接删除build文件夹。

编写程序的主要步骤

  1. Edit: 使用编辑器编写源代码,如.c,.cc,.cpp等文件。
  2. Compile: 使用编译器编译源代码生成目标文件,如.o,.a(Linux下静态库),.so(Linux下共享库)等文件。
  3. Link: 使用连接器链接目标代码生成可执行文件,如.exe(Window),.out(Unix)等文件。

cmake

通过编写cmakelist文件,自动生成makefile。

make

make可以用来批处理.c或.cpp文件的,它从makefile中读取相应指令,然后编译。

make install

将 make 生成的文件安装到系统的对应目录中,比如从github上下载下来一个依赖库的安装包,解压后经过上面几步,该依赖库的对应头文件和库文件就安装到系统中了。

一般来说,大部分的依赖库安装步骤完成后。库的头文件在 /usr/local/include/dependency_name/ 目录下,库文件则存在 /usr/local/lib/目录下。所以,安装完成后可以去相应目录下查看是否有对应的文件,如果则初步说明安装成功。或者去网上搜一些测试程序跑跑看是否正确调包并执行。

Pipeline

文件 --> cmakelist --> cmake --> makefile --> make --> 可执行文件

示意图[1]如下:

在这里插入图片描述

CMakeList.txt

#project name
PROJECT(test_math)
#head file path
INCLUDE_DIRECTORIES(
include
)
#source directory
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#set environment variable
SET(TEST_MATH
${DIR_SRCS}
)
#add executable file
ADD_EXECUTABLE(../bin/bin ${TEST_MATH})
#add link library
TARGET_LINK_LIBRARIES(../bin/bin m)

这是一个测试数学函数的程序的CMakeLists.txt,"#"后面为注释的内容,CMake的命令全部为大写

第2行指定生成的工程名为test_math

第4行指定头文件目录为include

第8行指定源文件目录为src,并将其赋值给环境变量DIR_SRCS

第10行设定环境变量TEST_MATH的值为环境变量DIR_SRCS的值,此处用于显示如何用环境变量对环境变量进行赋值

第14行将数学函数库赋值给环境变量LIBRARIES,当然,可以不用这个环境变量,而在后面直接使用该库名

第18行用于指定生成文件,将环境变量TEST_MATH目录下的所有文件编译生成…/bin目录下的可执行文件bin

第20行指定…/bin/bin执行时的链接库为环境变量LIBRARIES的值-libm.so

参考

https://blog.csdn.net/u012150179/article/details/17852273

猜你喜欢

转载自blog.csdn.net/Fourier_Legend/article/details/82799273