很多时候我们都是在使用IDE来构建自己的小项目,使用IDE,在学习中足够了。
但是渐渐的发现使用IDE已经满足不了自己了,发现自己处于两难的境地。为什么这么说呢?
首先,最主要的出发点是想要去自己动手构建一个项目。
其次,去学习如何写makefile吗?
第三,有没有其他的选择呢?
学习makefile,是根本上出发去学习如何组织构建一个项目,应该是不错的选择,真的不错吗?
当尝试去查找makefile相关资料的时候,看到长长的文档目录和密密麻麻的英文,即使我承认自己的英文水平还不错,
但是头也大了。也有一些不错的中文makefile教程,但是学习起来无异于学习一门新的语言,从时间的角度出发,至少对于
我来说不是个明智的选择。
autotools && cmake 应该是不错的选择?
autotools 同 cmake的比较这里就罗嗦了,网上这样子的文章都太多了。不过大多都是关于cmake如何取代autotools,最典型的就是
KDE早就放弃autotools,转投cmake门下。两者各自的优缺点,相信只有自己都亲自尝试一下才会知道。有的时候也不是自己喜欢就
可以的,如果你所在的团队在使用autotools,那你能说你只会cmake吗? 还是根据实际情况,最好是保持和团队一直,允许超越,但是
不允许落下。
其实无论是autotools还是cmake,都是一种中间形式的项目组织构建工具。最典型的莫过于cmake圈子中的那句话:cmake即编程。
为什么这样说呢? 如果你说makefile写起来 是shell脚本的话,那么cmake优雅的方式会让你感觉是用语言去创建项目,就这么简单。
autotools? 我才刚开始,入门的感觉和cmake比较起来,就是不需要写的那么多,(也许是我自己学习的DEMO都是比较小的,还没有
体会到在企业级项目中运用的优缺点.),但是组织所需的文件就比较的分散,不像cmake只需要CMakeLists.txt,而autotools需要按步骤
操作,而且关联性比较强。
说了那么多,如果您是新手,那么请自己去查阅资料。如果您是前辈,那么就请批评指正~
学语言都是从Hello World程序开始,那么学习autotools,也不能免俗,先从一个简单的Hello World 示例project开始,然后再介绍autotools
plugins 在eclipse中的使用.明白了原理和操作的方法吗,使用第三方开发的工具也就不会迷茫,主要是eclipse autotools plugins在使用的时候
默认的配置是有些问题的,所以需要自己改动一下,后面会介绍的,先来看DEOM:
1. 我在自己的桌面创建了一个自己的工程目录HelloWorld:
cd 桌面 mkdir HelloWorld touch HelloWorld.c #include <stdio.h> #include <stdlib.h> int main(int args,char ** argv) { puts("Hello World!\n"); return EXIT_SUCCESS; }
2.在当前目录下面执行autoscan.会生成configure.scan和autoscane.log(日志文件)文件 ,然后将configure.scan重命名问configure.in
autoscan mv configure.scan configure.in
3.编辑configure.in文件:
4.创建Makefile.am,并编辑文件:
5. 创建一些必要的文件,使工程看起来更像样一点:
touch NEWS AUTHORS ChangeLog README
6.生成必要的配置文件:
autoreconf -fvi
其实有很多是按照一些有序步骤操作的,一般会出现autogen.sh脚本 然后里面的内容是:
aclocal autoheader automake --add-missing autoconf
7.下面执行configure然后make就可以得到结果. (省略其他的操作)
./configure make
最后得到了我们想要的可执行文件helloworld.
使用autotools组织构建一些简单的小项目的步骤就是这样子的,如果是使用cmake,会更简单,所有的操作只需要编写一个CMakeLists.txt文件.
然后就是一些锦上添花的操作,像是创建NEWS,AUTHORS,ChangeLog,README etc..这些文件.
下面看看如何在eclipse中使用autotools plugins.
1.首先安装autotools plugins:
2.下面按照一般的步骤创建一个工程:(具体的可以参见eclipse的插件帮助文档 Help ->Help Contents)
3.下面就会发现,尝试去编译这个项目是不能成功的,而终端现实的错误是下面这个样子的:
4.如果你确定安装了autotools系列的所有工具,那么就请执行先面的操作.
在项目视图中选中HelloWorld项目,然后 Project->Properties->General->Tools Settings Tab
可以看出eclipse只是按照名称在组织,而导致前面问题的原因是路径找不到。所以我们需要添加路径:
做完这些,就可以去build pro && run application了。
至于autogen.sh,我在eclipse中看到了相关的配置选项,但是自己还没有琢磨出该如何使用。等日后明白了,再补充吧。
如果你知道,也可以告诉我.