【问题标题】:Set environmental vars and enable core dumps in autotools build在 autotools 构建中设置环境变量并启用核心转储
【发布时间】:2014-05-29 14:13:08
【问题描述】:

我正在为我当前的项目使用 Autotools。我正在使用 Ubuntu 和 Linux mint。使用 Autotools,我可以告诉它检查用户的系统以检查我的项目需要的任何必需的库,以便正常运行。现在我想检查用户的系统是否启用了核心转储,如果没有,则执行命令ulimit -c unlimited 以启用核心转储。如何以及在哪里指定?

此外,一旦用户执行了 make 命令来编译源代码,他们就会执行 sudo make install 以便将二进制文件移动到 /usr/local/bin/MYPROJECT。我想将我的项目二进制文件的位置添加到路径环境变量中,以便用户可以从终端执行我的项目中的任何二进制文件,而无需输入完整路径。在 Autotools 中如何以及在何处指定?

我想这是我会在 configure.ac 文件中添加的内容,但我还没有找到任何关于如何执行此操作的示例。任何帮助将不胜感激。

【问题讨论】:

    标签: linux path autotools


    【解决方案1】:

    听起来好像你基本上误解了安装什么软件 Linux 上的包大概是这样的。

    autotools 的工作是构建一个可移植的安装包 软件。当我安装你的包时,它不会成为你的决定 崩溃的程序是否会在 my 计算机上生成核心转储 当我运行它们时。我用什么PATH 不会成为你的决定 通过非限定名称调用程序。这些是我的决定或默认值 我已从我的操作系统发行版中接受。

    如果你执行ulimit -c unlimited,命令无论如何都会 仅适用于调用它的 shell。它没有 重新配置主机系统 (!)。

    如果您希望用户能够通过不合格的方式调用您的程序 name,正常的过程是让你的包默认安装在这个地方, /usr/local/bin,类似 unix 的操作系统传统上添加到 用户的默认PATH 用于查找本地安装的程序。那是 默认情况下,autotools 会将其配置为安装。更改 仅当您希望您的程序位于用户的默认PATH 中时。

    在任何情况下,用户都可以通过以下方式决定您的软件的安装位置 将--prefix=/path/of/my/choice 传递给./configure 命令。除非 你有一些不可避免的理由不安装你的包 使用每个人都期望的默认值,并将其留给安装用户 改变它们。

    底线:您正在询问如何使用自动工具执行安装操作 不打算用自动工具来完成,因为它们不应该是 通过软件包安装完成。

    【讨论】:

    • 你说得对,我的朋友。阅读您的评论后,我意识到我试图做的不是正确的做事方式。感谢您引导我朝着正确的方向前进!
    猜你喜欢
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多