gpt4 book ai didi

c++ - 将带有 automake 的预构建二进制文件放在哪里?

转载 作者:行者123 更新时间:2023-11-30 00:58:45 24 4
gpt4 key购买 nike

我写这个问题部分是基于 related question on helper-scripts .

我有一个用 autotools 构建的 C++ 软件系统。对于它的一小部分功能,我的系统使用了一个封闭源代码的预构建二进制文件:AMPL .我是他们软件的免费学生版。假设我从 C++ 代码中调用的 AMPL 二进制文件的名称是 ampl-student。我使用 system(...) 调用在我的代码中运行它。

我希望在运行“make install”时将 ampl-student 连同我编译的 C++ 代码的二进制文件一起移动到 /usr/bin。我应该在 Makefile.am 的什么地方添加 ampl-student。我应该将它添加到 bin_PROGRAMS 变量吗?

一个相关的问题是我是否应该将 ampl-student 放在 /usr/bin 中。有没有更合适的地方放置“辅助二进制文件”?

我认为这在一般情况下是个坏主意,因为将预构建的二进制文件与代码一起分发并不能保证二进制文件将在最终用户的计算机上运行。但在这种情况下,用户群很小,而且我碰巧知道他们都在使用相同的系统配置。所以我们实际上是在使用 deb 包作为让每个人都了解软件系统新版本的一种方式。

编辑 1: 我应该强调,问题首先是询问在 Makefile.am 中的何处指定 ampl-student autotools 使用的文件。

最佳答案

我会把它安装在 $(pkglibexecdir) 中:

pkglibexec_PROGRAMS = ampl-student

# If you need to know the path in your code
AM_CPPFLAGS = -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"

它不是一个真正的用户程序,所以这会将它安装在某个地方。默认情况下,这将是 $(prefix)/libexec/$(package)

关于c++ - 将带有 automake 的预构建二进制文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5615469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com