对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的
.bashrc或.bash_profile里增加下面的内容:
(注意:等号前面不要加空格,否则可能出现 command not found)

#在PATH中找到可执行文件程序的路径。
export PATH =$PATH:$HOME/bin

#gcc找到头文件的路径
C_INCLUDE_PATH=/usr/include/libxml2:/MyLib
export C_INCLUDE_PATH

#g++找到头文件的路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib
export CPLUS_INCLUDE_PATH

#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib
export LD_LIBRARY_PATH

#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:/MyLib
export LIBRARY_PATH

库 文件在连接(静态库和共享 库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:

在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径。

在 /etc/ld.so.conf 文件中添加库的搜索路径。

将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择

添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如:

/usr/X11R6/lib

/usr/local/lib

/opt/lib

需 要注意的是:第二种搜索路径的设置方式对于程序连接时的库(包括共享库和静态库) 的定位已经足够了,但是对于使用了共享库的程序的执行还是不够的。这是因为为了加快程序执行时对共享库的定位速度,避免使用搜索路径查找共享库的低效率, 所以是直接读取库列表文件 /etc/ld.so.cache 从中进行搜索的。/etc/ld.so.cache 是一个非文本的数据文件,不能直接编辑,它是根据 /etc/ld.so.conf 中设置的搜索路径由 /sbin/ldconfig 命令将这些搜索路径下的共享库文件集中在一起而生成的(ldconfig 命令要以 root 权限执行)。因此,为了保证程序执行时对库的定位,在 /etc/ld.so.conf 中进行了库搜索路径的设置之后,还必须要运行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 文件之后才可以。ldconfig ,简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache 以供使用。因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下 /sbin/ldconfig使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用 的,结果编译过程中抱错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。

在程序连接时,对于库文件(静态库和共享库)的搜索路径,除了上面的设置方式之外,还可以通过 -L 参数显式指定。因为用 -L 设置的路径将被优先搜索,所以在连接的时候通常都会以这种方式直接指定要连接的库的路径。

前 面已经说明过了,库搜索路径的设置有两种方式:在环境变量 LD_LIBRARY_PATH 中设置以及在 /etc/ld.so.conf 文件中设置。其中,第二种设置方式需要 root 权限,以改变 /etc/ld.so.conf 文件并执行 /sbin/ldconfig 命令。而且,当系统重新启动后,所有的基于 GTK2 的程序在运行时都将使用新安装的 GTK+ 库。不幸的是,由于 GTK+ 版本的改变,这有时会给应用程序带来兼容性的问题,造成某些程序运行不正常。为了避免出现上面的这些情况,在 GTK+ 及其依赖库的安装过程中对于库的搜索路径的设置将采用第一种方式进行。这种设置方式不需要 root 权限,设置也简单:

$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

可以用下面的命令查看 LD_LIBRAY_PATH 的设置内容:

$ echo $LD_LIBRARY_PATH

至此,库的两种设置就完成了。

转载于:https://www.cnblogs.com/qiumingcheng/p/11149716.html

Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量相关推荐

  1. linux添加include环境变量,Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量

    Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量 15:12) 标签: 编译器 Linux 分类: 转载一些有用的文章 (2012-01-31 对所有用户有效在/etc/prof ...

  2. C/C++:Windows10环境下安装gcc编译器

    一.下载.安装 下载Windows环境下的gcc: GCC with the MCF thread model 1.下载最新版 mingw-w64-gcc-mcf_20221020_12.2.1_x6 ...

  3. 【Linux系统编程学习】 GCC编译器

    此为牛客网Linux C++课程1.2&1.3的课程笔记. 0. 简介 1. gcc和g++的安装 sudo apt install gcc g++ 2. gcc常用参数选项 3. gcc工作 ...

  4. C语言控制台程序添加图标(基于GCC编译器)

    文章目录 1. 生成ICON资源文件 2. gcc编译选项时加上资源文件 3. 一键自动编译 没加图标的控制台程序: 加了图标的控制台程序: 首先,需要准备一个ICON图标文件,像素大小推荐128x1 ...

  5. windows 使用GCC编译器编译c++程序 开始学习c++最好的环境配置

    1.安装编译器gcc >下载 MinGW Installer  https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.e ...

  6. linux升级编译器,升级Linux系统中的gcc编译器

    一.准备工作 CentOS5.4发行版中的gcc版本为4.1.2,在编译gem5时出现错误,gem5要求gcc的版本在4.3以上,因此要对CentOS上得gcc进行升级.本文将gcc编译器升级到4.4 ...

  7. g++ linux 编译开栈_linux gcc和g++版本的修改

    ##编译的时候容易遇到:unsupported GNU version! gcc versions later than 6 are not supported这样的错误.所以我们要更改系统的gcc和 ...

  8. 深入gcc编译器:C/C++代码如何变为可执行程序

    揭秘gcc编译器:C/C++代码如何变为可执行程序(Demystifying gcc Compiler: How C/C++ Code Becomes Executable) 一.引言(Introdu ...

  9. mtl库在GCC编译器下的使用

    最近一直在改造算法库,将其移植到Linux平台下.使用GCC编译器是发现MTL库中出现一大堆的问题.使用的MTL库下载地址为:http://osl.iu.edu/research/mtl/downlo ...

最新文章

  1. 分享一个仿就看天气应用源码
  2. solve函数c语言_数值计算方法编程作业(C语言版)汇总
  3. curl查看swift状态命令_前端应该会的23个linux常用命令
  4. mysql指令按顺序排列_MySQL 排序 | 菜鸟教程
  5. 开服侠如何修改服务器头像,王者荣耀怎么更换头像 修改头像攻略
  6. linux防火墙配置怎么修改密码,Linux系统修改防火墙配置
  7. mac大小写切换快捷键,程序猿向
  8. linux服务器共享网络设置方法,Windows和linux网络共享 配置网上邻居
  9. SiTime硅晶振MEMS谐振子制作工艺详解
  10. MPICH2 bcast广播函数使用
  11. 小辩五笔输入法的高效及拼音输入法的盲目夸大--评所谓整句输入技术
  12. Windows 浏览器调起客户端应用程序
  13. 算法:Climbing Stairs(爬楼梯) 6种解法
  14. Instruction Tuning(FLAN、instructGPT、chatGPT)
  15. 计算机职称考试科目及内容,职称计算机-考试科目
  16. 洛谷P1262 间谍网络题解
  17. Java后端笔记 _Static关键字
  18. 关于js中delete 操作符的秘密(如何删除对象的属性,清空对象)
  19. 智能眼镜技术特点与挑战
  20. 男性:曹云金再恋嫩模:男人最重要的是有趣

热门文章

  1. c语言编程和PS,求高人剖析下这道C语言编程题(PS:越详细越好)
  2. rsync实时同步服务部署
  3. openssl生成私钥公钥的步骤
  4. 引用dll文件要复制到本地
  5. 优化网站设计(三):对资源添加缓存控制
  6. 怎么样自己动手写OS
  7. Linux中的同步机制
  8. MemoryRecords分析
  9. (192)FPGA上电后IO的默认状态(Vivado软件默认为1)
  10. (29)VHDL实现时钟分频