【问题标题】:Cannot doubleclick binary file to make it run in terminal无法双击二进制文件使其在终端中运行
【发布时间】:2012-04-25 17:35:29
【问题描述】:

我做了一个这样的脚本:

#! /bin/bash
/path/to/program

并使其可执行。我希望能够在 Nautilus 中双击它,选择“在终端中运行”,一切都应该与我自己从终端调用脚本时一样,它工作正常。当我双击时,我收到错误消息“加载共享库时出错:libpylonbase-2.3.3.so:无法打开共享对象文件:没有这样的文件或目录”并且终端立即关闭。 libpylonbase-2.3.3 与程序中使用的工业相机有关。任何人都可以看到它在其中一种情况下工作而不在另一种情况下工作的原因吗?

【问题讨论】:

标签: linux ubuntu-11.04


【解决方案1】:

从终端和 Nautilus 运行程序时,请检查环境变量是否相同。您可以通过插入以下行来做到这一点:

env > /tmp/test

至少 $PATH 和 $LD_LIBRARY_PATH 应该相同。

【讨论】:

  • 酷!我只需要从我的 .bashrc 复制一些导出
  • 我不明白为什么环境不同。
  • 检查您的 .bashrc 文件。它可能有类似[ -z "$PS1" ] && return 的内容。此后的所有内容仅在运行交互式会话时执行,即在终端中。
  • 是的,原来如此,谢谢,那么把它注释掉有什么缺点吗?
  • 我不会评论它。首先,它减慢了速度(为什么有人会为非交互式会话加载 bash_completion 规则)。其次,它可能会破坏事物。例如,我有更改“grep”和“rm”的别名。我认为最好在该行之前移动环境变量分配。
【解决方案2】:

这次可能是 LD_LIBRARY_PATH,但您可以使用 http://stromberg.dnsalias.org/~strombrg/env-search.html 自动跟踪 env var 差异

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-21
    • 2018-09-11
    • 2017-08-11
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    相关资源
    最近更新 更多