如何重新配置Autotools项目 解决aclocal版本不兼容构建失败问题
问题修复步骤
- 第一步先清理旧版本生成的构建缓存文件:
如果原有Makefile还能运行基础命令,先执行make maintainer-clean清除所有自动生成的构建相关文件。如果该命令执行失败,手动删除以下文件/目录即可:aclocal.m4、configure、所有Makefile.in文件、autom4te.cache目录。 - 第二步重新生成适配当前autotools版本的配置文件,按顺序执行以下命令:
aclocal:基于当前系统的autotools版本生成新的宏定义文件autoconf:生成新的configure检测脚本automake --add-missing:生成所有Makefile.in模板,自动补充缺失的构建辅助文件
- 第三步执行常规构建流程即可:
运行./configure完成环境检测,再执行make完成项目编译。
如果不想每次都手动执行上述命令,可以把这几步命令封装成autogen.sh脚本放在项目根目录,拉取代码后直接运行脚本即可完成所有预配置操作。
需要纳入版本控制的文件
仅需要提交autotools的源配置文件,所有运行命令生成的临时文件都不需要提交:
- 必须提交:
- 项目所有自有源码文件
configure.ac(部分旧项目叫configure.in,是autoconf的规则定义文件)- 各级目录下的
Makefile.am(是automake的规则定义文件,Anjuta生成的规则都存在这里) - 自定义的m4宏文件(一般存放在项目的m4目录下)
- 项目说明类文件(README、LICENSE、INSTALL等)
- 禁止提交:
- 自动生成的
configure、aclocal.m4、Makefile.in、config.h.in等文件 - 构建过程中生成的
Makefile、config.log、config.status、.o目标文件、最终二进制产物 autom4te.cache这类缓存目录
你可以将上述禁止提交的内容写入.gitignore文件,避免误提交。
- 自动生成的
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

