【问题标题】:Redhat Linux - SO file not foundRedhat Linux - 未找到 SO 文件
【发布时间】:2018-06-12 05:04:27
【问题描述】:

在 Linux 上运行我编译的 C++ 代码时遇到问题。当我使用这条线时,它在 Ubuntu 上运行良好:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../irrklang/lib/linux-gcc-64/

在运行我的程序之前。如果我不这样做,我会收到一个错误:

./main: error while loading shared libraries: libIrrKlang.so: cannot open shared object file: No such file or directory

在我使用的 Redhat 版本上,它是一台 Uni PC,它必须在这里运行。运行上面的导出命令会导致:

Bad : modifier in $ (.).

我也试过了:

ldconfig -l ../irrklang/lib/linux-gcc-64/libIrrKlang.so

但这也不起作用。我不确定还有什么方法可以让我的程序正常运行。

编辑:

我刚刚试过这个:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:"../irrklang/lib/linux-gcc-64/"

但这表示 LD_LIBRARY_PATH 未定义

【问题讨论】:

  • 您应该能够使导出命令工作。可能是您使用的是 bourne shell。尝试使用 bash。
  • 默认的 shell 是 tcsh。与 bash 一起使用时,导出命令确实有效。而且我还需要在 bash 中运行程序。我发现我可以在 tsch 中设置 LD_LIBRARY_PATH:setenv LD_LIBRARY_PATH "../irrklang/lib/linux-gcc-64/" 谢谢你的帮助

标签: c++ linux ubuntu g++ redhat


【解决方案1】:

user2672165 为我指明了正确的方向。 shell 是 tcsh,它要求我设置 LD_LIBRARY_PATH:

setenv LD_LIBRARY_PATH "../irrklang/lib/linux-gcc-64/"

另一种解决方法是使用 bash 作为导出命令和 ./run

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多