1 介绍
我们用 C 或者 C++语言写好了源程序,但是这个代码只能让人读懂,却不能被机器读懂,为了在系统上运行这个程序,该源程序需要被转化为一系列低级机器语言指令,然后将这些指令按照可执行目标程序的格式打包并以二进制磁盘文件形式存储起来。最终在运行时,操作系统加载这个二进制文件,以进程的方式运行该程序。在 linux 系统可以通过下面这个方式,把源程序转化为目标程序。:
gcc tcp_server.c -o tcp_server
在这里,这个编译工具帮我们把源码文件转换成了目标可执行程序(tcp_server),实际上,整个转换过程包括了预处理、编译、汇编和链接。那么
这个工具实际上分别使用预处理器、编译器、汇编器、链接器也就是说这四个程序构成了编译系统。过程如下图
2 常见的工具
常见的c/c++编译工具有Makefile,CMake,autoconf,ci等。目前主流项目中用的较多的还是cmake构建工程项目。
2.1 Makefiel原理以及使用
Makefile三元素:
工作原理:
2.2 CMake原理及构建工程项目
2.2.1 cmake源码安装
a:移除默认安装的旧版本
apt-get autoremove cmake
下载源码:
wget https://cmake.o