linux下常见的环境变量对应的目录

环境变量作用

环境变量 作用
ACLOCAL 在GNU automake套件中起作用。对应各个软件里的share/aclocal目录
PATH 可执行程序的目录。
PKG_CONFIG_PATH 作用见后文,对应软件里的lib/pkgconfigshare/pkgconfig目录
LD_LIBRARY_PATH 主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径。即用于在程序运行期间查找动态链接库时,指定除了系统默认路径(/usr/lib)之外的路径。对应lib目录
LIBRARY_PATH 在程序编译期间查找动态链接库时指定的查找共享库的路径。指定gcc编译需要链接动态链接库的目录。
CPATH CPATH 环境变量用于 C/C++ 预处理,它列出了预处理器检索 C/C++ 头文件的目录,与之相对的环境变量还有 C_INCLUDE_PATH、CPLUS_INCLUDE_PATH 和 OBJC_INCLUDE_PATH。其中无论预处理哪种语言,都会使用 CPATH 环境变量,而其余的三种环境变量仅在预处理指定的语言时才会适用。

以下部分来自于https://blog.csdn.net/qq_36182852/article/details/109680418

PKG-CONFIG用来检索系统中安装库文件的信息。典型的是用作库的编译和连接。 一般来说,如果库的头文件不在/usr/include目录中,那么在编译的时候需要用-I参数指定其路径。 由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下, 所以即使使用同一个库,由于库的路径的不同, 造成了用-I参数指定的头文件的路径和在连接时使用-L参数指定lib库的路径都可能不同, 其结果就是造成了编译命令界面的不统一。可能由于编译,连接的不一致, 造成同一份程序从一台机器copy到另一台机器时就可能会出现问题。

PKG-CONFIG就是用来解决编译连接界面不统一问题的一个工具。 它的基本思想:PKG-CONFIG是通过库提供的一个.pc文件获得库的各种必要信息, 包括版本信息、编译和连接需要的参数等。 需要的时候可以通过pkg-config提供的参数(–cflags, –libs),将所需信息提取出来供编译和连接使用。 这样,不管库文件安装在哪,通过库对应的.pc文件就可以准确定位, 可以使用相同的编译和连接命令,使得编译和连接界面统一。

它提供的主要功能有:

  1. 检查库的版本号。如果所需库的版本不满足要求,打印出错误信息,避免连接错误版本的库文件。
  2. 获得编译预处理参数,如宏定义,头文件的路径。
  3. 获得编译参数,如库及其依赖的其他库的位置,文件名及其他一些连接参数。
  4. 自动加入所依赖的其他库的设置。

参考文献


linux下常见的环境变量对应的目录
https://levsky-williams.top/posts/1df8ddf2/
作者
Levski-Williams
发布于
2024年4月13日
许可协议