如何在linux中设置环境变量LD_LIBRARY_PATH

2024-09-30 14:02:00
admin
原创
440
摘要:问题描述:我首先执行了以下命令:export LD_LIBRARY_PATH=/usr/local/lib然后我打开了.bash_profile文件:vi ~/.bash_profile。在这个文件中,我输入了:LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_...

问题描述:

我首先执行了以下命令:export LD_LIBRARY_PATH=/usr/local/lib

然后我打开了.bash_profile文件:vi ~/.bash_profile。在这个文件中,我输入了:

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

然后如果关闭并重新启动终端,输入echo $LD_LIBRARY_PATH将不会显示任何结果。

如何永久设置路径?


解决方案 1:

您应该添加有关您的发行版的更多详细信息,例如在 Ubuntu 下,正确的方法是添加自定义.conf文件/etc/ld.so.conf.d,例如

sudo gedit /etc/ld.so.conf.d/randomLibs.conf

在文件中,你应该写入包含要添加到系统的所有库的目录的完整路径,例如

/home/linux/myLocalLibs

记住只添加目录的路径,而不是文件的完整路径,该路径内的所有库都将被自动索引。

保存并运行sudo ldconfig以使用此库更新系统。

解决方案 2:

保留以前的路径,不要覆盖它:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/

您可以将其添加到您的~/.bashrc

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc

解决方案 3:

添加

LD_LIBRARY_PATH="/路径/你/想要1:/路径/你/想要/2"

/etc/environment

请参阅Ubuntu 文档

更正:我应该听从自己的建议,真正阅读文档。文档中说这不适用于 LD_LIBRARY_PATH:从 Ubuntu 9.04 Jaunty Jackalope 开始,LD_LIBRARY_PATH 不能在 $HOME/.profile、/etc/profile 或 /etc/environment 文件中设置。您必须使用 /etc/ld.so.conf.d/ .conf 配置文件。*因此,user1824407 的回答是正确的。

解决方案 4:

或者,您可以使用指定的库目录执行程序:

/lib/ld-linux.so.2 --library-path PATH EXECUTABLE

点击此处了解更多

解决方案 5:

该文件.bash_profile仅由登录 shell 执行。您可能需要将其放入~/.bashrc,或者直接注销并再次登录。

解决方案 6:

由于某种原因,没有人提到编辑后需要重新获取 bashrc。您可以注销并重新登录(如上所述),但也可以使用以下命令:source ~/.bashrc. ~/.bashrc

解决方案 7:

输入[最好放在脚本末尾,以避免中间出现任何覆盖,默认export LD_LIBRARY_PATH=/usr/local/lib带有许多语句]~/.bashrc`~/.bashrc`if-else

发布后,每当你打开一个新的终端/控制台时,LD_LIBRARY_PATH都会反映出来

解决方案 8:

  1. 进入主文件夹并编辑 .profile

  2. 将以下行放在末尾

export LD_LIBRARY_PATH=<your path>

  1. 保存并退出。

  2. 执行此命令

sudo ldconfig

解决方案 9:

您可以尝试添加自定义脚本, myenv_vars.sh例如/etc/profile.d

cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh

将其添加到空文件并保存。

export LD_LIBRARY_PATH=/usr/local/lib

注销和登录,LD_LIBRARY_PATH将会被永久设置。

解决方案 10:

我在 Mint 15 到 17 中执行以下操作,也适用于 ubuntu server 12.04 及更高版本:

sudo vi /etc/bash.bashrc 

滚动到底部,然后添加:

export LD_LIBRARY_PATH=.

所有用户都已添加环境变量。

解决方案 11:

在Ubuntu 20.04 Linux中,这并不像它应该的那样明显和直接。

我将尝试让那些像我使用Ubuntu 20.04.3 Linux一样抓狂的人能够轻松使用它。

首先确定库文件文件夹所在的路径。在我的例子中,我使用的* .so文件位于名为libs的文件夹中,而这个文件夹在我的 Ubuntu 机器中的路径是/usr/lib

所以现在我想将路径/usr/lib添加到LD_LIBRARY_PATH,这样当我在 Ubuntu 终端中运行echo $LD_LIBRARY_PATH时,我将能够看到回显的路径 /usr/lib,如下所示;

joseph$ echo $LD_LIBRARY_PATH
:/usr/lib

以下是我使用的步骤

  1. 在 Ubuntu 20.04 Linux 框中打开终端

  2. 通过运行cd /etc/ld.so.conf.d/将路径更改为/etc/ld.so.conf.d/

  3. 使用文本编辑器(
    例如vimgedit)创建一个末尾带有 * .conf扩展名的文件,我按照如下方式创建它:sudo gedit my_project_libs.conf

  4. 在我创建的名为my_project_libs.conf 的.conf文件中,我通过添加此行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
    添加了到我的库的路径

  5. 此后,我运行gedit ~/.bash_profile来打开
    ~/.bash_profile文件,以便我可以在其中添加此行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib,其中包括我想要包含在LD_LIBRARY_PATH中的库/usr/lib文件夹的路径

  6. 我还运行了gedit ~/.bashrc来打开
    ~/.bashrc文件,以便我可以在其中添加此行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib,其中包括我想要包含在LD_LIBRARY_PATH中的库/usr/lib文件夹的路径

  7. 完成步骤 5 中添加行后,保存关闭

  8. 在终端中,输入以下命令sudo ldconfig并按下
    键盘上的回车键。关闭所有打开的终端,然后打开一个新的终端会话并运行 echo $LD_LIBRARY_PATH 如果您看到您添加的路径被回显,则说明您做对了。

就我而言,当我在新打开的 Ubuntu 终端会话中运行echo $LD_LIBRARY_PATH时,我看到的是:/usr/lib

joseph$ echo $LD_LIBRARY_PATH
:/usr/lib

这就是我如何在Ubuntu 20.04.3 Linux机器上让它工作。

解决方案 12:

似乎每个人都只见树木不见森林。

真正的答案是'~/.bash_profile'默认仅供LOGIN SHELLS使用。

如果您从桌面 GUI 启动和关闭终端,您可能正在寻找的 bash 配置文件是“~/.bashrc”,这是启动交互式非登录 shell 时默认获取的文件。

https://apple.stackexchange.com/questions/51036/what-is-the-difference- Between-bash-profile-and-bashrc

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1041  
  IPD(Integrated Product Development,集成产品开发)是一种系统化的产品开发方法论,旨在通过跨职能团队的协作,优化产品开发的效率和质量。IPD流程强调从市场需求出发,通过并行工程、跨部门协作和阶段性评审,确保产品从概念到上市的每个环节都高效且可控。随着敏捷开发方法的普及,越来越多的企业开始...
华为IPD流程   34  
  随着企业产品开发复杂度的提升以及市场需求的快速变化,传统的产品开发模式逐渐显现出局限性。集成产品开发(IPD)流程与敏捷开发(Agile Development)作为两种主流的开发方法论,分别从系统化管理和快速响应需求的角度为企业提供了解决方案。然而,单独使用其中一种方法往往无法完全满足企业在效率、质量和创新上的多重需...
华为IPD流程   31  
  华为IPD(Integrated Product Development,集成产品开发)流程是华为公司成功的关键因素之一。它不仅帮助华为在技术上实现了快速创新,还通过市场导向确保了产品的商业成功。IPD流程通过整合技术与市场双驱动,实现了从需求定义到产品交付的全生命周期管理。这种模式不仅提高了产品的开发效率,还降低了市...
IPD流程中PDCP是什么意思   23  
  在研发领域,集成产品开发(IPD)流程已经成为企业提升创新效率和市场竞争力的重要手段。然而,资源分配的不合理往往是制约IPD流程效率的关键因素之一。无论是人力资源、财务资源还是技术资源,如何高效分配直接关系到项目的成功与否。优化资源分配不仅能够缩短产品开发周期,还能降低研发成本,提升产品的市场竞争力。因此,掌握资源分配...
IPD流程中CDCP   26  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用