【发布时间】:2021-02-27 20:09:29
【问题描述】:
我正在尝试在 google colab 上编译和运行一些 c++ 代码,这取决于 GSL 库。导入步骤是确保几个关键文件(例如 libgsl.so.25)位于与您的 LD_LIBRARY_PATH 环境变量关联的文件夹中。目前,LD_LIBRARY_PATH 设置为;
!echo $LD_LIBRARY_PATH
.
.
/usr/lib64-nvidia
所以现在,我想将 LD_LIBRARY_PATH 更改为包含 libgsl.so.25 的文件夹,即 /content/lib。从 gnu 文档 (https://www.gnu.org/software/gsl/doc/html/usage.html#f4) 中,您可以按如下方式更改 LD_LIBRARY_PATH;
!LD_LIBRARY_PATH=/content/lib
!export LD_LIBRARY_PATH
但是,这似乎并没有真正改变 LD_LIBRARY_PATH(即;当我 !echo 时返回相同的原始路径)。此外,当我尝试运行我的代码时,我收到了同样的错误消息,即找不到 libgsl.so.25。
!echo $LD_LIBRARY_PATH
.
.
/usr/lib64-nvidia
谁能看到我错过了什么?怎样才能真正改变 LD_LIBRARY_PATH?
【问题讨论】:
-
您粘贴的命令假定您在单个 shell 中工作。我不认为 Colab 在同一个 shell 中运行每个单元。
-
@Botje 我并没有真正遵循 - 你说如果我运行 !LD_LIBRARY_PATH="/content/bin" !export LD_LIBRARY_PATH !echo $LD_LIBRARY_PATH 一起在同一个块中应该可以解决问题?
-
不,我是说它不起作用,因为每个
!...行都在单独的shell中执行。 -
嗯..好的,我有什么选择吗?
-
如果您自己编译 C++ 代码,您不能将其 dynamic RPATH 设置为像 /content/lib 这样的静态目录或使用
$ORIGIN/../lib等相对于它的位置吗?跨度>
标签: c++ shell environment-variables google-colaboratory gsl