头文件搜索路径
系统默认搜索路径
/usr/include
跟gcc相关的搜索目录:
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include
安装gcc时,如果有指定prefix的话,那么系统的默认搜索路径为:
/usr/include
prefix指定的路径/x86_64-redhat-linux/4.8.2/include
通过环境变量添加搜索路径
- C_INCLUDE_PATH:编译 C 程序的时候使用的环境变量
- CPLUS_INCLUDE_PATH:编译 C++ 程序的时候使用的环境变量
- CPATH:编译 C、 C++及Objective-C 程序时使用的环境变量
- OBJC_INCLUDE_PATH:编译 Objective-C 程序的时候使用的环境变量
编译时指定搜索路径
通过 gcc 的 -I 参数。
编译时搜索优先级
- 编译时指定搜索路径;
- 通过环境变量添加搜索路径;
- 系统默认搜索路径;
库文件搜索路径
系统默认搜索路径
/lib
/usr/lib
永久添加系统库文件搜索路径
- 往/etc/ld.so.conf文件中添加需要搜索的路径,添加完后执行 ldconfig
- 在/etc/ld.so.conf.d/ 目录下创建文件,文件中添加需要搜索的路径,添加完后执行ldconfig,如:
[root@localhost ld.so.conf.d]# pwd /etc/ld.so.conf.d [root@localhost ld.so.conf.d]# ls bind-export-x86_64.conf kernel-3.10.0-1160.el7.x86_64.conf mariadb-x86_64.conf [root@localhost ld.so.conf.d]# cat mariadb-x86_64.conf /usr/lib64/mysql
通过环境变量添加搜索路径
LIBRAY_PATH:用于在程序编译时告诉链接器ld,库的搜索路径。
LD_LIBRARY_PATH:用于在程序加载时告诉动态链接器,动态库的搜索路径。
编译时指定搜索路径
(1)通过 gcc 的 -L 参数指定库的搜索路径,这种方法是在程序链接成可执行文件时用。
(2)通过 gcc 的 -Wl,-rpath 参数指定库的搜索路径,这种方法在程序运行时,在指定的目录下搜索并加载相应的动态库。
搜索优先级
编译时搜索优先级
- gcc 的 -L 参数指定的库搜索路径;
- 通过环境变量添加搜索路径;
- 永久添加系统库文件搜索路径;
- 系统默认搜索路径目录: /lib -> /usr/lib;
运行时搜索优先级
- gcc 的 -Wl,-rpath 参数指定的库搜索路径;
- 通过环境变量添加搜索路径;
- 永久添加系统库文件搜索路径;
- 系统默认搜索路径目录: /lib -> /usr/lib;
相关知识点
ldconfig
在默认搜索目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库。
如:
ldconfig -v
ldd
可以查看软件依赖了哪些库, 如:
[root@localhost bin]# ldd grep
linux-vdso.so.1 => (0x00007ffc4ffe3000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f2bca9e1000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2bca613000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2bca3f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2bcac43000)
修改环境变量
将目录/usr/local/lib添加到环境变量LD_LIBRARY_PATH:文章来源:https://www.toymoban.com/news/detail-426756.html
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
通过环境变量添加的库搜索路径,系统重启将被清除,要想系统重启后仍然生效:
在/etc/profile文件中添加添加:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib文章来源地址https://www.toymoban.com/news/detail-426756.html
到了这里,关于linux下头文件及库文件搜索路径知识汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!