找回密码
 FreeOZ用户注册
查看: 2302|回复: 10
打印 上一主题 下一主题

[论坛技术] automake autoconf 这里有多少人会用??

[复制链接]
跳转到指定楼层
1#
发表于 29-11-2009 16:50:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
最近在linux下写和编译一个自己的软件。
准备用automake autoconf工具进行。
刚学了一点,觉得这两个东西好复杂好难学哦。内容太多了~!
这里有谁是这方面的专家吗???能不能给点学习建议?~!
回复  

使用道具 举报

2#
发表于 29-11-2009 17:01:10 | 只看该作者
你要写多复杂的软件要用到automake/autoconf?
一般的软件直接用标准模板就足够了
而且这个也是发布到不同运行环境下才需要的吧,开发的时候也不需要啊
回复  

使用道具 举报

3#
 楼主| 发表于 29-11-2009 17:12:45 | 只看该作者
要编译的时候很有用阿,这个东西能在make前帮助检测系统中缺少的程序库,还是蛮有用的,因为发布linux软件是给别人源代码的,别人系统上的情况也不知道光写个Makefile,别人极为可能编译不过的。另外我也想学学这种比较专业的编译技术~!~!
我的软件很小,也就万把行代码吧,不过需要依赖挺多库的,如zlib, pthread, readline, libxml2。
回复  

使用道具 举报

4#
发表于 29-11-2009 17:58:35 | 只看该作者
我通过超过两个程序文件就会用automake/autoconf来搞。因为好用

原帖由 ritz 于 29-11-2009 18:01 发表
你要写多复杂的软件要用到automake/autoconf?
一般的软件直接用标准模板就足够了
而且这个也是发布到不同运行环境下才需要的吧,开发的时候也不需要啊
回复  

使用道具 举报

5#
发表于 29-11-2009 18:02:46 | 只看该作者
automake/autoconf是一个基于M4的工程管理软件,
你要掌握的一些简单的M4宏。

一般来说,你可以用autoscan先生成一个简单的configure.ac/configure.in的的基础,
然后改进一下。

而Makefile.am则相对简单,一般来说你可以直接写,注意
bin_PROGRAMS
noinst_HEADERS

这些东西的含义就可以了。automake/autoconf只会让你的工作更简单,只需要简单的学习。
它们自己就带有document。你也可以在网上找一两个例子学一下。不过要注意,autoconf的版本变化有点大,
如果一些旧文章的例子通不过也不要太奇怪,再找找新一点的就行了。

原帖由 viewpl 于 29-11-2009 18:12 发表
要编译的时候很有用阿,这个东西能在make前帮助检测系统中缺少的程序库,还是蛮有用的,因为发布linux软件是给别人源代码的,别人系统上的情况也不知道光写个Makefile,别人极为可能编译不过的。另外我也想学学这种比 ...

评分

参与人数 1威望 +30 收起 理由
coredump + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

6#
 楼主| 发表于 29-11-2009 18:45:52 | 只看该作者
  OK, I'm learning~! Thx~!
回复  

使用道具 举报

7#
 楼主| 发表于 29-11-2009 19:27:40 | 只看该作者
还想问一个问题:
使用了automake autoconf的工程,在c或cpp source code中要作那些工作呢?源代码中是不是要写很多#ifdef #endif 这种了阿?~!
回复  

使用道具 举报

8#
发表于 29-11-2009 21:42:02 | 只看该作者
理论上不需要,除非你有一些函数、变量是和平台相关的,那你就需要结合config.h出来的结果来写。

比如linux下有<stdint.h>,而Solaris下没有,你就需要测试有没有stdint.h这个头。
而Solaris下需要include的几个网络相关的头文件,在linux下一个socket.h就搞定,你可能也需要弄一下,
但一般来说是不需要的,遇到的时候你就知道怎样加了。

原帖由 viewpl 于 29-11-2009 20:27 发表
还想问一个问题:
使用了automake autoconf的工程,在c或cpp source code中要作那些工作呢?源代码中是不是要写很多#ifdef #endif 这种了阿?~!
回复  

使用道具 举报

9#
发表于 29-11-2009 22:12:54 | 只看该作者
automake/autoconf 复杂是有点复杂的,但是远比直接上makefile 舒服一点,而且跨多个平台也有优势。

但是这套致力于简化makefile的工具本身现在复杂得有点过头了,你可以试试CMake,SCons之类构建工具。
回复  

使用道具 举报

10#
发表于 30-11-2009 08:31:34 | 只看该作者
CMake我没有用过,但SCons好象是用来仿Apache Ant还是Maven的,
个人觉得似乎Automake/autoconf好用一些。不过automake/autoconf的advanced功能我也很少用到,或基本上不会用。

原帖由 coredump 于 29-11-2009 23:12 发表
automake/autoconf 复杂是有点复杂的,但是远比直接上makefile 舒服一点,而且跨多个平台也有优势。

但是这套致力于简化makefile的工具本身现在复杂得有点过头了,你可以试试CMake,SCons之类构建工具。
回复  

使用道具 举报

11#
发表于 30-11-2009 09:29:57 | 只看该作者
原帖由 key 于 30-11-2009 08:31 发表
CMake我没有用过,但SCons好象是用来仿Apache Ant还是Maven的,
个人觉得似乎Automake/autoconf好用一些。不过automake/autoconf的advanced功能我也很少用到,或基本上不会用。

一句我认为对automake/autoconf m4最贴切的评价:


The autoconf/configure system is clever, but in the end, it is just a very creative hack to work around the deficiencies of Makefiles.



除了使用上复杂之外,对于大型项目,autoconf/automake海有个致命缺点就是产生的Makefile效率太差,对于那些C++项目来说,这更是雪上加霜的事情。看看KDE项目成员对automake/autoconf的评价就知道了,如果不是有忍受不了的痛苦和无法拒绝的诱惑,KDE这样的庞然大物是不会从automake/autoconf把自己的build system转成CMake的。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 12-5-2025 21:43 , Processed in 0.022825 second(s), 30 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表