gpt4 book ai didi

g++ - 设置 LD_LIBRARY_PATH 环境变量以在运行时加载共享库 (g++)

转载 作者:行者123 更新时间:2023-12-04 18:45:12 25 4
gpt4 key购买 nike

我有两个与同一问题相关的问题:

  • 我有一个保存在 `pwd`/lib 中的共享对象,虽然使用它的可执行文件成功编译(通过使用 -l 和 -L 开关),但在运行时,它让我感到悲伤。如果我尝试运行 LD_LIBRARY_PATH=/my/absolute/path/to/library/directory ./test它工作正常。但是,如果我导出 LD_LIBRARY_PATH=/my/absolute/path/to/library/directory 并执行 ./test它说它找不到共享库。但是,如果我这样做 LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./test再次它工作正常!关于我做错了什么的任何想法?
  • 第二个问题与 LD_LIBRARY_PATH 环境变量的导出有关。如果我打开一个终端并输入 export LD_LIBRARY_PATH=/path/to/stuff然后输入 echo $LD_LIBRARY_PATH ,变量正确。但是,如果我编写一个包含导出命令的脚本,只需运行它并不会更新变量,而是需要运行 source install.sh为了实际持久化变量。什么是最好的解决方案?

  • 感谢您的时间!

    最佳答案

    回答第二个先提问:
    source在当前 shell 中执行脚本,./install.sh在不同的 shell 中打开并执行它。
    http://www.unix.com/unix-dummies-questions-answers/537-difference-between-source-exec-script.html

    现在回答你的第一个问题:
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./test仅在一个命令(./test 命令)之前设置 LD_LIBRARY_PATH 变量。出于同样的原因,我相信这不会转移到任何 shell ./test创造。为了让它持续存在,你可能需要把 export LD_LIBRARY_PATH=...在您的 ~/.bashrc

    关于g++ - 设置 LD_LIBRARY_PATH 环境变量以在运行时加载共享库 (g++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729137/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com