make工具

简介: 【5月更文挑战第13天】make工具。

使用类似gcc的编译器来进行编译的过程并不简单,因为一套软件并不会仅有一个程序,而是有很多程序代码文件。所以每个主程序与副程序除了均需要写上编译过程的命令外,还需要写上最终的链接程序。如果程序代码少还好,但是类似 WWW服务器软件(例如 Apache),或者是类似核心的源码,动辄数百MB的数据量,编译命令将很大。这个时候,可以使用make命令的相关功能来进行编译过程的命令简化。
当运行make时,make会在当前的目录下搜寻 Makefile(或makefile)文件,而 Makefile里面记录了源码如何编译的详细信息。make会自动地判别源码是否已经改变,而自动升级执行文件,所以,make是软件工程师相当好用的一个辅助工具。
make是一个程序,会去找 Makefile,那么Makefile怎么撰写呢?通常软件开发商都会写一个检测程序来检测使用者的操作环境以及该操作环境是否有软件开发商所需要的其他功能,该检测程序检测完毕后,就会主动地创建Makefile的规则文件。通常检测程序的文件名为 configure或者是 config。
要检测操作环境是因为不同版本的核心所使用的系统调用可能不相同,而且每个软件所需要的相关的函数库也不相同。同时,软件开发商不会仅针对 Linux开发,而是会针对整个 Unix-Like开发。所以也必须要检测该操作系统平台有没有提供合适的编译器才行。一般来说,检测程序会检测的数据如下:
是否有适合的编译器可以编译本软件的程序代码。
● 是否已经存在本软件所需要的函数库,或其他需要的相关软件。
● 操作系统平台是否适合本软件,包括 Linux的核心版本。
● 内核的头定义文件 (header include)是否存在(驱动程序必须要的检测)。
由于不同的 Linux distribution的函数库文件的路径、函数库的文件名定义、默认安装的编译器以及内核的版本都有可能不相同,因此理论上,无法在 CentOS 5.x上面编译出二进制程序后,还将它拿到 SuSE上面运行。因为调用的目标函数库位置可能不同,内核版本更不可能相同。所以能够运行的情况微乎其微。同一套软件要在不同的平台上面运行时,必须要重复编译。

相关文章
|
4月前
|
自然语言处理 Linux C++
make和Cmake都有什么区别?(内附使用详解)
make: 是一个构建工具,它的任务是读取 Makefile 文件,并基于这些文件中的指令执行具体的构建操作。Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。 CMake: 是一个构建系统生成器。它并不直接进行编译或链接,而是根据项目中 CMakeLists.txt 文件的内容生成一个或多个构建系统的描述文件(如 Makefile 或 Visual Studio 解决方案)。CMake 提供了一种更高级、更抽象的方式来描述构建过程,这使得它能够跨平台地生成各种构建系统。
374 0
|
6月前
|
IDE Linux 测试技术
Linux项目自动化构建工具-make/Makefile
Linux项目自动化构建工具-make/Makefile
|
6月前
|
IDE Unix 测试技术
CMake基础(10)使用ninja构建
CMake基础(10)使用ninja构建
1040 1
|
6月前
|
Linux 程序员 计算机视觉
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
254 0
|
6月前
|
C语言
make的执行步骤以及常见的make命令,make distclean 以及和make clean的区别
make的执行步骤以及常见的make命令,make distclean 以及和make clean的区别
252 0
|
6月前
|
C++
make 及 make clean 的作用
make 及 make clean 的作用
161 0
|
Linux C语言
【Linux】gcc/g++的使用 自动化构建工具make/makefile的使用
【Linux】gcc/g++的使用 自动化构建工具make/makefile的使用
108 0
|
Linux 开发工具 C语言
Linux编译gcc/g++、自动化构建工具make/makefile
Linux中关于gcc/g++的基本操作,以及makefile的基本操作。
Linux编译gcc/g++、自动化构建工具make/makefile
|
编译器
Qt没有被正确安装,请运行make install -- 问题的解决办法
Qt没有被正确安装,请运行make install -- 问题的解决办法
1259 0
构建freeswitch, make cd-moh-install提示文件错误
构建freeswitch, make cd-moh-install提示文件错误
126 0