在哪里放置带有automake的预制二进制文件?

我正在根据有关辅助脚本的相关问题部分编写此问题。 我有一个用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:我应该强调的是,问题首先是要求在autotools使用的Makefile.am文件中指定
ampl-student
的位置。     
已邀请:
我将它安装在
$(pkglibexecdir)
pkglibexec_PROGRAMS = ampl-student

# If you need to know the path in your code
AM_CPPFLAGS = -DPKGLIBEXECDIR="$(pkglibexecdir)"
它不是真正的用户程序,因此将其安装在某个地方。默认情况下,这将是
$(prefix)/libexec/$(package)
。     
这实际上取决于您是要发送软件还是将其本地安装在/ usr / bin中,并且所有用户都将从那里访问该软件。 如果要将它安装在/ usr / bin中并且想要将AMPL放在那里,请为路径定义一个符号常量并使用它。 #define AMPL / usr / bin / ampl-student 无论您要使用哪个源文件,都可以添加, 系统(AMPL);    如果要发送代码的二进制文件,则应将Ampl-bin放在软件的bin目录中或创建目录。结构如下: <你的工具> / src <你的工具> / bin - 你也可以把Ampl-student放在这里 <你的工具> /第三方/< tool1> ....< tooln> / bin /你可以把Ampl-student放在这里 正如您在分发Ampl-student之前所正确提到的那样,它可以在该工具运行的所有平台上运行。     

要回复问题请先登录注册