Autotools:PROGRAMS 安装路径

Posted

技术标签:

【中文标题】Autotools:PROGRAMS 安装路径【英文标题】:Autotools: PROGRAMS installation paths 【发布时间】:2019-11-28 08:47:07 【问题描述】:

在典型情况下,当您需要构建二进制文件并安装它们时,我可以使用类似的东西:

bin_PROGMRAMS: foo
foo_SOURCES: goo.c

sbin_PROGRAMS: foo
foo_SOURCES: goo.c

这意味着 foo 将被构建,然后安装在 $(prefix)/bin$(prefix)/sbin 中。但是,如果您使用 data_PROGRAMS 而不是 bin_PROGRAMS,则 automake 将不允许这样做。

问题:二进制文件(“程序”)安装允许的完整路径列表是什么?

【问题讨论】:

【参考方案1】:

PROGRAMS 允许的预定义安装目录的完整列表是:

‘bindir’, ‘sbindir’, ‘libexecdir’, ‘pkglibdir’

类似标准路径的完整列表可以在auto-book 中找到

编辑:上面的列表不正确,我把它留在这里只是为了给评论部分提供上下文,见下文:

自动预订似乎已过时。正确的安装目录列表是:

bindir, sbindir, libexecdir, pkglibexecdir

https://www.gnu.org/software/automake/manual/html_node/Program-Sources.html#Program-Sources

【讨论】:

您似乎从 Autobook 中复制了您的列表,结果证明这是错误的,您可以通过实验验证。 pkglibdir不是PROGRAMS 主目录一起使用的有效目录,因为它确实与libdir 的允许使用一致。我想 Autobook 的意思是说pkglibexecdir,否则会构成遗漏。无论如何,此信息的主要来源是the Automake manual。 @JohnBollinger 是的,它来自 autobook,正如我在答案中所说的那样。我检查了您提供的链接,它似乎没有列出可以通过 automake 安装 PROGRAMS 的目录... 这里的关键问题是给出的答案明显是错误pkglibdir 不允许用于 PROGRAMS,而 pkglibexecdir 是。我链接的 Automake 手册部分通过引用 the GNU Coding Standards 部分提供了正确的信息,部分通过评论“Automake 使用 pkgdatadir、pkgincludedir、pkglibdir 和 pkglibexecdir 扩展了这个列表;这些与非'pkg ' 版本,但附加了 '$(PACKAGE)'。" 好的,找到正确的答案(相应地编辑了答案)

以上是关于Autotools:PROGRAMS 安装路径的主要内容,如果未能解决你的问题,请参考以下文章

使用Autotools编译安装python模块到python库路径

使用 Autotools 打包库

未安装 autotools/libtool 共享库

linux中如何安装autotools系列工具

Autotools 套件错误放置“man”文件导致安装失败

Autotools 处理本地与已安装数据文件的方法