公司开发的产品,要运行在不同的 linux/unix环境中。
以前程序员是自行一套,有手工编写Makefile的,有用autoconf的。
手工编写Makefile的,有一个在ubuntu11.04上正常编译连接,11.10上就不能正确连接了。
看到的用autoconf工具的生成configure,很容易编译。
开始考虑公司使用统一的 生成平台了。
调研了一下,autoconf和cmake的能力相对比较近。
但使用上Cmake较简单(只要用一个,autoconf有四个工具要装)
还是倾向于CMake。
因此要开始学习CMake的使用了。
2013-3-24 补充
autoaconf流程:
http://www.ibm.com/developerworks/cn/linux/l-makefile/
在使用过一段时间后,对于两种工具有更深入的了解。
autoconf的操作流程在不同环境的的部署安装中更为灵活。
但是在开发流程中,因为开发环境基本不会发生变化,autoconf的环境适应能力优势就没那么重要了。
原因分析,最终编译是使用的Makefile,这两个工具没有差别。
主要差别 在于Makefile的更新流程上。
在需要编译的文件发生变动的情况下,Makefile需要更新,但是开发环境没有变化。
autoconf: 需要重新运行configure文件,有时可能需要从aclocal,automake开始重新运行。而configure执行会相当耗时间,这时间主要耗在环境检查上。
同时,autoconf需要显示指定被编译的文件,有时会比较烦(可以用外部脚本实现自动)。
而Cmake 在Makefile生成后,再次执行时,会自动检测CMakeLists.txt的修改,自动更新。在不显示声明的情况下,不会自动进行环境检查。
因此从开发的效率角度上来说,CMake更好。
分享到:
相关推荐
### Autotools 使用详解——Linux Makefile 自动生成工具 #### 一、引言 在 Linux 开发领域,Autotools 可谓是不可或缺的工具之一。它不仅极大地简化了软件包的构建过程,还使得跨平台编译变得轻而易举。通过使用 ...
Makefile是Linux环境下不可或缺的工具之一,它极大地简化了编译流程并提高了开发效率。通过编写清晰、高效的Makefile,不仅可以使项目更加易于管理和维护,还可以确保编译过程的一致性和可重复性。掌握Makefile的...
在Linux环境下,Makefile的生成与管理是构建项目的关键步骤,尤其对于大型软件项目而言,自动化工具如`automake`和`autoconf`的应用极大地简化了这一过程。本文将深入探讨如何利用这些工具自动生成Makefile,并通过...
Arm linux Makefile 通用的makefile 只需要修改项目名称。
Linux Makefile是Linux环境下进行软件开发的重要工具,它主要用于自动化编译和链接过程,极大地提高了开发者的工作效率。在这个“Linux Makefile工程实战教程”中,你将深入学习如何编写和运用Makefile,从基础概念...
Linux Makefile 是一个自动化编译工具,广泛应用于 C/C++ 项目的编译和构建过程中。Makefile 的作用是自动地生成目标文件,自动地检查依赖关系,并自动地选择合适的编译命令。下面是 Linux Makefile 的详细教程,...
Linux Makefile 实验文档深入探讨了Makefile在Linux和Unix系统中的应用,以及如何使用GNU make工具来自动化编译和构建项目。Makefile是一个自动化编译的工具,能够根据文件的时间戳来决定哪些文件需要编译,从而提高...
#### 二、Makefile与自动生成工具简介 1. **Makefile**: - Makefile是一种脚本文件,用于定义编译规则和依赖关系。 - 通过`make`命令,可以基于Makefile执行编译操作。 - 自由软件项目通常遵循一定的惯例来编写...
#### 二、automake简化Makefile生成 automake是一种强大的工具,它允许开发者通过编写简单的宏文件来自动生成Makefile。这个过程分为几个步骤: 1. **预定义宏文件**:开发者编写包含预定义宏的文件,这些宏描述了...
Automake是一个辅助工具,它根据项目源代码结构生成符合GNU标准的Makefile.in文件。这个Makefile.in文件随后会被configure脚本处理,生成最终的Makefile。Automake的主要任务包括处理源码文件依赖关系、库文件的构建...
总结起来,Linux下的Makefile自动生成工具autotools简化了构建过程,使开发者能够专注于编写代码,而不用过多关心构建系统的细节。对于初学者来说,理解这个工具链的工作原理和使用方法是至关重要的,因为它能帮助...
在Linux系统中,`Makefile`是一个非常重要的工具,它帮助开发者自动化编译、链接以及执行等构建过程。本文将详细解析`Makefile`的基本结构、规则和常见指令,通过提供的"实验8_2"和"实验8_1"文件名,我们可以推测这...
通过深入分析Linux2.6内核的Makefile,我们可以揭示其编译过程的奥秘,这对于理解和改进操作系统、优化编译流程以及学习Makefile语法都至关重要。 Makefile是GNU Make工具使用的配置文件,用于自动化构建项目。在...
Makefile 的学习和掌握是每一个专业程序员的必备技能,尤其是在 Linux/Unix 平台上。它不仅是自动化构建的基础,也是提升软件工程质量和效率的重要工具。通过深入理解 Makefile 的工作原理和语法结构,开发者能够更...
`Linux makefile`是用于自动化编译和链接程序的重要工具,尤其在大型项目中,它能显著提高开发效率。`makefile`定义了一系列规则,指示`make`程序如何构建、编译和链接源代码,确保每次只有必要的文件才会被重新编译...
"LINUX2.6内核makefile详解" Linux 2.6 内核 Makefile 详解是 Linux 内核开发中非常重要的一部分。Makefile 是一个脚本文件,用于描述如何编译和构建 Linux 内核。该文件是 Linux 内核开发的核心组件之一,对开发...
在Linux环境中,`Makefile`是一个非常重要的工具,它用于自动化构建项目,特别是涉及多文件的C/C++项目。编写有效的`Makefile`规则能够极大地提高开发效率,减少手动编译链接的繁琐工作。本篇将详细介绍如何在`...
在IT行业中,Linux和Makefile是两个至关重要的概念,尤其对于软件开发和自动化构建过程而言。让我们深入探讨一下这两个主题。 首先,Linux是一种开源的操作系统,它的内核由林纳斯·托瓦兹(Linus Torvalds)创建,...
在 Linux 开发中,Makefile 是一个不可或缺的工具,它可以帮助我们快速编译和安装程序。然而,手动编写 Makefile 可能会很繁琐,特别是当我们需要遵守自由软件惯例时。因此,本文将介绍如何使用 Autoconf 和 ...
首先,Linux内核的配置系统由三部分构成:`Makefile`、配置文件(`config.in`)和配置工具。`Makefile`定义了内核的编译规则,它分布在内核源代码的不同目录中,确保每个组件按需编译。配置文件`config.in`提供了...