为什么每个使用makefile的源包都带有./configure脚本,它有什么作用?据我所知,它实际上生成了makefile?
makefile中是否有任何无法完成的内容?
答案 0 :(得分:2)
configure通常是'autoconf'系统的结果。它可以生成标题,makefile,真的任何东西。 “通常,”因为有些是手工制作的。
这些事情的原因是允许在不同的环境中编译源代码。 Unix / Linux上有许多变体,系统头和库略有不同。配置脚本允许代码自动适应。
答案 1 :(得分:1)
配置步骤是一种元构建。它生成的makefile将适用于您正在运行的特定硬件/分发。例如,它确定C或C ++编译器的名称并将其嵌入到makefile中。
配置步骤还经常采用一组参数,其值可以确定需要链接的库。例如,如果您在启用SSL的情况下编译Apache HTTP,则需要链接更多共享库,而不需要。由于链接是由makefile处理的,因此您需要额外的步骤来创建自定义makefile(而不是要求make命令需要数十个或数百个选项。
答案 2 :(得分:1)
一切都可以在makefile中完成,但是一些构建系统是以其他方式实现的。
我个人不会将configure
个文件用于我的项目,但我承认我主要是出口Erlang&基于Python的项目。
答案 3 :(得分:1)
我不认为makefile是一个脚本,我认为它是make
实用程序的输入。
configure
脚本(顾名思义)配置makefile,包括解析依赖关系。
如果仅从避免自修改代码的想法出发,配置脚本中的内容实际上并不属于makefile。
答案 4 :(得分:1)
重点是autoconf autohdr automake构成了一个集成系统,使得unix上的跨平台构建相对更加顺畅。文档真的很糟糕,有很多可怕的陷阱,但另一方面有很多工作样本
当我第一次遇到这些东西时,我想 - “我可以用一个漂亮干净的makefile做到这一点”并继续以这种方式重新编写源代码。大错。学习编写和编辑configure.ac和makefile.am文件,最后你会很高兴
回答你的问题。配置适用于
是这个平台上可用的函数foo,如果可以,我需要包含和库
让施工人员选择是否需要以简单一致的方式包含功能wizzbang