我有一个使用Autoconf和Automake的C++项目。我决定在我的src
目录中有太多的源文件,并将一些文件移动到一个子目录中。然后,我修改了Makefile.am
并将这些文件从source.cpp
更改为subdir/source.cpp
。我知道这种方法应该能够工作,就像我以前为一些新文件所做的那样(但之后我没有重命名任何东西)。现在我跑到下面,像往常一样:“make clean”不清除与Automake的依赖关系?
autoreconf
./configure
make clean
make
我得到的是这样的错误消息:
No rule to make target "source.cpp" needed for "source.o"
我不明白什么地方出了错。我检查了我的Makefile,但它似乎是正确的。所以我克隆了我的git仓库到一个新的地方,并尝试了一个make,并且它工作。没问题,我想,并且在我的原始目录上做了一个git clean -xf
。在此之后,编译仍然不起作用。现在我做了两个目录钢结构制品(陆续git clean -xf
一个diff,发现仍然存在一个.deps
目录中删除的是,它编译后
这个故事的寓意是:。
make clean
不会删除相关性。git clean -xf
不删除依赖关系(可能因为隐藏目录)。
有没有什么办法,使make clean
(或可能是git clean
)自动删除此目录?当然,我可以手动执行它,但是非常烦人的是在清理完成后还有依赖项文件。
运行''编辑Makefile.am',或'configure.ac'删除'AM_MAINTAINER_MODE'后autoreconf',可能会解决你的问题。 – ptomato 2012-07-08 13:33:18