C++ 在哪里放置automake的预构建二进制文件?
我写这个问题的部分原因是基于一个假设 我有一个用AutoToo工具构建的C++软件系统。对于其功能的一小部分,我的系统使用了一个封闭源代码的预构建二进制文件:。我是他们软件的免费学生版本。假设我在C++代码中调用的AMPL二进制文件的名称是<代码> AMPL学生< /代码>。我使用C++ 在哪里放置automake的预构建二进制文件?,c++,packaging,autotools,automake,ampl,C++,Packaging,Autotools,Automake,Ampl,我写这个问题的部分原因是基于一个假设 我有一个用AutoToo工具构建的C++软件系统。对于其功能的一小部分,我的系统使用了一个封闭源代码的预构建二进制文件:。我是他们软件的免费学生版本。假设我在C++代码中调用的AMPL二进制文件的名称是 AMPL学生< /代码>。我使用系统(…)调用在代码中运行它 >我想将 AMPL学生连同“编译安装”运行时的编译后的C++代码的二进制代码一起移到 /Ur/bin > /代码>。我应该在Makefile.am的哪里添加ampl student。我是否应该将
系统(…)
调用在代码中运行它
>我想将<代码> AMPL学生<代码>连同“编译安装”运行时的编译后的C++代码的二进制代码一起移到<代码> /Ur/bin > /代码>。我应该在Makefile.am的哪里添加
。我是否应该将其添加到ampl student
变量中bin\u程序
ampl学生
放入/usr/bin
。“助手二进制文件”是否有更合适的位置
一般来说,我认为这是一个坏主意,因为将预构建的二进制文件与代码一起分发并不能保证二进制文件将在最终用户的计算机上运行。但在这种情况下,用户群非常小,我碰巧知道他们都使用相同的系统配置。因此,事实上,我们使用deb包作为一种方法,让每个人都了解软件系统的最新版本
编辑1:我应该强调的是,问题首先是询问在autotools使用的Makefile.am文件中指定
ampl student
的位置。这实际上取决于您是想发布软件还是将其本地安装在/usr/bin中,所有用户都将访问该文件从那里下载软件
#定义AMPL/usr/bin/AMPL学生
无论您想使用哪个源文件,都可以添加,
系统(AMPL)
正如您在分发ampl student之前正确提到的,请确保它在该工具应该运行的所有平台上都能工作 这实际上取决于您是想发布该软件还是将在本地安装在/usr/bin中,所有用户都将从那里访问该软件
#定义AMPL/usr/bin/AMPL学生
无论您想使用哪个源文件,都可以添加,
系统(AMPL)
$(pkglibexecdir)
中安装它:
它并不是一个真正的用户程序,所以它安装在一个偏僻的地方。默认情况下,这将是$(前缀)/libexec/$(包)
我将在$(pkglibexecdir)
中安装它:
它并不是一个真正的用户程序,所以它安装在一个偏僻的地方。默认情况下,这将是
$(前缀)/libexec/$(包)
谢谢您的回答。然而,我更想问的是如何添加到Makefile.am中,以便为这些预构建的二进制文件指定一个好位置,这样当运行makeinstall
或在Ubuntu中安装deb包时,ampl student
文件会在某个有意义的地方结束(/usr/bin是我认为有意义的,但我不确定).谢谢你的回答。然而,我更想问的是如何添加到Makefile.am中,以便为这些预构建的二进制文件指定一个好的位置,这样当运行makeinstall
或者在Ubuntu中安装了deb包时,ampl student
文件会在某个有意义的地方结束(/usr/bin是我认为有意义的,但我不确定)。
pkglibexec_PROGRAMS = ampl-student
# If you need to know the path in your code
AM_CPPFLAGS = -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"