首页 > 系统相关 >linux之gcc

linux之gcc

时间:2023-02-25 19:44:18浏览次数:39  
标签:gcc .. lib 路径 usr linux include

#################

usr是unix system resource缩写,不是user缩写;

 

 

/lib,/usr/lib,/usr/local/lib的区别:

  1. /lib是内核级的;
  2. /usr/lib是系统级的;
  3. /usr/local/lib是用户级的;

C/C++中可以通过#include <stdio.h>和#include "stdio.h"包含头文件,区别是:

  1. #include <stdio.h>,直接到系统指定目录去查找头文件;
  2. #include “stidio.h”,会先到当前工程目录查找头文件,如果没找到再到系统指定目录查找;

 

一、头文件的搜索路径:

  1. 先找gcc的参数“-I”指定的目录;
  2. 再找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH;
  3. 再找内定目录/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;
  4. 但是如果装gcc的时候,是有给定的prefix的话,那么就是/usr/include,prefix/include,prefix/xxx-xxx-xxx-gnulibc/include,prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include;

二、编译时动态库的搜索路径:

  1.  先找gcc的参数“-L”指定的目录;
  2. 再找gcc的环境变量:LIBRARY_PATH;
  3. 再找内定目录:/lib,/usr/lib,/usr/local/lib;

三、运行时动态库的搜索路径:

在编译目标代码时指定该程序的动态库搜索路径,还可以在编译目标代码时指定程序的动态库搜索路径。

  1. 先找gcc的参数“-Wl,-rpath”指定的目录,当指定多个动态库搜索路径时,路径之间用冒号“:”分隔;
  2. 环境变量LD_LIBRARY_PATH指定动态库搜索路径,当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号“:”分隔);
  3. 配置文件/etc/ld.so.conf中指定动态库搜索路径,该文件中每行为一个动态库搜索路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效;
  4.  默认的动态库搜索路径:/lib,/usr/lib

 

 

 

 

 

 

 

 

 

 

 

 

 

################

标签:gcc,..,lib,路径,usr,linux,include
From: https://www.cnblogs.com/igoodful/p/17155191.html

相关文章