LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1121|回复: 5

automake自动产生的Makefile被make报错!

[复制链接]
发表于 2006-7-18 11:26:28 | 显示全部楼层 |阅读模式
初学automake想编译自己写的一个小工程
我按照下面的步骤做的:

autoscan
将生成的configure.scan改成configure.in
并加上AM_INIT_AUTOMAKE(racoon,1.0)

aclocal

autoconf

新建 Makefile.am,内容如下:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=racoon
racoon_SOURCES=1-class\ training.cpp TimeSeries.cpp TimeSeriesInputNeuron.cpp TimeSeriesNeuron.cpp TimeSeriesRecurrentNetwork.cpp TimeSeriesRecurrentNeuron.cpp TimeSeriesSimpleRecurrentNetwork.cpp VectorNeuron.cpp VectorFunction.cpp

autoheader

automake --add-missing

./configure

到此一切顺利,但是我试图make的时候却报错了:
Makefile:15: *** 遗漏分隔符 。 停止。

我于是查看Makefile,发现第15行开始是这样的:
@SET_MAKE@

srcdir = .
top_srcdir = .
好像@SET_MAKE@是多余的,于是把它删了,但是接着在后面又有报错,都是关于遗漏分隔符的,一看都是@.....@这种的。不知道是不是Makefile风格设定的问题,高手帮忙看一下,谢谢了!
发表于 2006-7-18 12:02:15 | 显示全部楼层
racoon_SOURCES=1-class\ training.cpp TimeSeries.cpp TimeSeriesInputNeuron.cpp TimeSeriesNeuron.cpp TimeSeriesRecurrentNetwork.cpp TimeSeriesRecurrentNeuron.cpp TimeSeriesSimpleRecurrentNetwork.cpp VectorNeuron.cpp VectorFunction.cpp

这里没写错?? 第一个有路径,以后的没有路径?

看我另一个帖的图
http://www.linuxsir.cn/bbs/showthread.php?t=264605
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-18 16:11:34 | 显示全部楼层
1-class\ training.cpp中的\是转义空格,因为1-class training.cpp是一个文件,而不是1-class和training.cpp两个文件。
回复 支持 反对

使用道具 举报

发表于 2006-7-18 19:14:51 | 显示全部楼层
如果还有错,就把你的源文件,目录结构,Makefile.am,confiugure.ac 以及使用的命令如automake等的参数都贴出来吧,
回复 支持 反对

使用道具 举报

发表于 2006-7-18 20:10:14 | 显示全部楼层
这已经是一个经典错误了。这种情况是由于Fedora Core系列系统中automake版本太新引起的。这类系统默认带的automake是1.8版,而这种错误通常出现在用automake-1.8配上automake-1.4配套的文件生成的Makefile中。楼主可以试试用1.4版:

aclocal-1.4
automake-1.4
autoconf
./configure ...
make

一般情况下,autoconf倒是不会出现问题。

注意,Fedora Core以后的各个版本都携带了一堆automake,一般从1.4到1.8都有的,就是为了处理这种不兼容情况。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-19 08:56:44 | 显示全部楼层
楼上说的有道理。不过我的情况不太一样,我用的是SUSE10,automake和aclocal的版本都是1.9.6,而make的版本3.80。这些都是我装SUSE的时候系统自带的。不知道怎样使它们版本协调,还请赐教!
回复 支持 反对

使用道具 举报

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

本版积分规则

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