#################
usr是unix system resource缩写,不是user缩写;
/lib,/usr/lib,/usr/local/lib的区别:
- /lib是内核级的;
- /usr/lib是系统级的;
- /usr/local/lib是用户级的;
C/C++中可以通过#include <stdio.h>和#include "stdio.h"包含头文件,区别是:
- #include <stdio.h>,直接到系统指定目录去查找头文件;
- #include “stidio.h”,会先到当前工程目录查找头文件,如果没找到再到系统指定目录查找;
一、头文件的搜索路径:
- 先找gcc的参数“-I”指定的目录;
- 再找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH;
- 再找内定目录/usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-linux/2.95.2/include,/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3,/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include;
- 但是如果装gcc的时候,是有给定的prefix的话,那么就是/usr/include,prefix/include,prefix/xxx-xxx-xxx-gnulibc/include,prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include;
二、编译时动态库的搜索路径:
- 先找gcc的参数“-L”指定的目录;
- 再找gcc的环境变量:
LIBRARY_PATH;
再找内定目录:/lib,/usr/lib,/usr/local/lib;
三、运行时动态库的搜索路径:
在编译目标代码时指定该程序的动态库搜索路径,还可以在编译目标代码时指定程序的动态库搜索路径。
- 先找gcc的参数“-Wl,-rpath”指定的目录,当指定多个动态库搜索路径时,路径之间用冒号“:”分隔;
- 环境变量LD_LIBRARY_PATH指定动态库搜索路径,当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号“:”分隔);
- 配置文件/etc/ld.so.conf中指定动态库搜索路径,该文件中每行为一个动态库搜索路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效;
- 默认的动态库搜索路径:/lib,/usr/lib
################
标签:gcc,..,lib,路径,usr,linux,include From: https://www.cnblogs.com/igoodful/p/17155191.html