首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Linux上构建autogen.sh包时,c++的工作是什么?

在Linux上构建autogen.sh包时,c++的工作是什么?
EN

Stack Overflow用户
提问于 2018-04-26 13:20:59
回答 2查看 20.4K关注 0票数 27

在Linux上从源代码(Ubuntu16.04)安装c/c++软件包时,我看到了一个常见的模式:

  1. ./autogen.sh
  2. ./配置
  3. 制作
  4. 制造安装

我理解makemake install,我猜configure基于用户首选项创建了一个Makefile,但我不明白为什么autogen.sh是必要的。

有人知道那是干什么的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-26 13:33:16

步骤:

  1. autogen.sh脚本生成configure脚本(使用configure.ac,使用autoconf)和它需要的任何文件(比如使用自动化从Makefile.am创建Makefile.in )。这需要在您的系统上安装自动工具,并且必须在从源代码管理签出项目时运行它(如果没有签入configure )。下载源tarball的人通常可以跳过这个步骤,因为这个步骤的输出包含在源tarball中。 Note这通常等同于autoreconf --install。如果没有autogen.sh文件,那么只运行autoreconf --install。如果您继承了一个带有autogen.sh的项目,如果可以使用autoreconf --install,请考虑删除它。
  2. configure脚本生成构建所需的Makefile和其他文件。通常,Makefile.in被用作生成Makefile的模板( config.h.in用于生成config.h)。此过程只使用系统上安装的标准工具,如sed和awk,而不需要安装自动工具。
  3. make命令构建软件。
  4. make install命令安装它。

它们被分成不同的步骤,因为它们经常在不同的时间运行。传统上,autogen.sh步骤是由开发软件的人员运行的,因为他们需要在自己的系统上安装autoconf并对configure.ac进行更改。最终用户不需要安装自动工具。

由于最终用户更有可能在源代码管理之外检查一个项目,而不是下载源代码版本,这些期望已经发生了一些变化。

票数 49
EN

Stack Overflow用户

发布于 2018-04-26 13:30:38

这仅适用于使用autotools构建链构建的程序/库。它生成由configure脚本配置的文件。然后,配置脚本填充.in文件,并从Makefile.am模板生成Makefile。它最终可用于编译、链接和安装程序/库。

随着向多平台包的迁移,它正逐渐过时。CMake和更现代的工具链是最先进的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50044091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档