linux gcc 头文件搜索路径

2023-11-01

一、头文件
 
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:这是当初compile gcc时写在程序内的

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

1、在配置文件/etc/ld.so.conf中指定动态库搜索路径

2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔)
 
3、在编译目标代码时指定该程序的动态库搜索路径(还可以在编译目标代码时指定程序的动态库搜索路径。
 
这是通过gcc 的参数"-Wl,-rpath,"指定。当指定多个动态库搜索路径时,路径之间用冒号":"分隔
4、默认的动态库搜索路径/lib    /usr/lib
可以通过执行可执行文件pos得到的结果不同获知其搜索到了哪个动态库,从而获得第1个动态库搜索顺序,然后删除该动态库,
 
再执行程序pos,获得第2个动态库搜索路径,再删除第2个被搜索到的动态库,
 
如此往复,将可得到Linux搜索动态库的先后顺序。
程序pos执行的输出结果和搜索到的动态库的对应关系如表1所示
 
程序pos输出结果 使用的动态库 对应的动态库搜索路径指定方式
./ ./libpos.so 编译目标代码时指定的动态库搜索路径
 
/root/test/env/lib /root/test/env/lib/libpos.so 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
 
/root/test/conf/lib /root/test/conf/lib/libpos.so 配置文件/etc/ld.so.conf中指定的动态库搜索路径
 
/lib /lib/libpos.so 默认的动态库搜索路径/lib
 
/usr/lib /usr/lib/libpos.so 默认的动态库搜索路径/usr/lib
 
动态库的搜索路径搜索的先后顺序是:
 
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;

3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib    /usr/lib。
本篇文章来源于:开发学院 http://edu.codepub.com   原文链接:http://edu.codepub.com/2010/1201/27613.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux gcc 头文件搜索路径 的相关文章

随机推荐

  • C语言经典100例题(39)-- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    目录 题目 问题分析 代码 测试结果 题目 有一个已经排好序的数组 现输入一个数 要求按原来的规律将它插入数组中 问题分析 首先判断此数是否大于最后一个数 然后再考虑插入中间的数的情况 插入后 此元素之后的数 依次后移一个位置 代码 inc
  • Ubuntu安装腾讯会议及运行腾讯会议的命令 亲测有用

    运行腾讯会议的命令 A A Dell G15 5511 opt wemeet wemeetapp sh 参考 Ubuntu安装腾讯会议 Ubuntu16 04 18 04 20 04 22 04 ubuntu下载腾讯会议 HIT Vanni
  • 人脸检测、人脸对齐(MTCNN方法)

    众所众知 严格定义上的人脸识别分为四个步骤 人脸检测 从图片中准确定位到人脸 人脸矫正 对齐 检测到的人脸 可能角度不是很正 需要使其对齐 对矫正后的人脸进行特征提取 对两张人脸图像的特征向量进行对比 计算相似度 这里 我们主要是推荐步骤1
  • How to fix hung_task_timeout_secs and blocked for more than 120 seconds problem

    Author Skate Time 2015 03 04 How to fix hung task timeout secs and blocked for more than 120 seconds problem 现象 系统hang住
  • 执行bin/schematool -initSchema -dbType mysql -verbos 初始化hive报错SQL Error code: 1045

    报错原因 执行命令 bin schematool initSchema dbType mysql verbos 报错信息 SLF4J Class path contains multiple SLF4J bindings SLF4J Fou
  • 苹果“屈服”了?App Store 竟允许第三方支付!

    整理 郑丽媛 出品 CSDN ID CSDNnews 苹果和 Epic Games 之间的矛盾想必大家都有所了解 Epic Games 旗下一款游戏 堡垒之夜 因不想被抽取 30 的 苹果税 绕过苹果内购 IAP In App Purcha
  • SQL Server 修改字段属性为 NOT NULL,并设置默认值

    修改字段 NULL gt NOT NULL alter table ndb adshow alter column shopid1 int not null 设置 修改默认值 一 如果没有设置默认值 则直接执行下面语句 alter tabl
  • sqli-labs (less-34)

    sqli labs less 34 进入34关 我们发现又回到了我们熟悉的页面 我们直接输入用户名和密码登入进去 像之前的关卡一样 我们输入的用户名和密码也是使用POST的方式传输到了服务器 所以我们继续使用hackbar工具抓取POST内
  • OpenWrt :添加OpenWrt软件包

    12 1简介 OpenWrt是一个比较完善的嵌入式Linux开发平台 在无线路由器应用上已有4000多个软件包 我们可以在其基础上增加软件包 以扩大其应用范围 在OpenWrt中增加软件包极其方便 按照OpenWrt的约定就可以很简单的完成
  • SPWM的单极性和双极性

    单极性 双极性 只包含了正弦信号正半周或负半周的信息 既包含了正弦信号正半周的信息 又包含了负半周的信息 一般用推挽或全桥 一般用于半桥 反应在推挽上 反应在逆变桥上 两管交替按10MS的时间导通 但是导通的管 在10MS内按三角波的频率导
  • hi3861使用iic驱动adxl346

    开发平台 Ubuntu 18 04 DOPI hi3861lv开发板 adxl346模组 Q群 735884031 一 配置3861iic 1 搭建demo工程 可参考我的上一篇博客 2 查看引脚复用 使用GPIO9 GPIO10作为iic
  • mysql-8.0.16-winx64安装教程

    一 MySQL数据库安装 本篇文章主要介绍mysql 8 0 16 winx64的安装方法 zip压缩包我放到了我的资源里 需要的可以自行下载 官网下载地址 具体安装方法如下 1 选择你自己的安装路径 我放在了D盘的MySQL目录下 D M
  • Android 底部导航栏(底部Tab)最佳实践(附带学习源码)

    当开始一个新项目的时候 有一个很重要的步骤就是确定我们的APP首页框架 也就是用户从桌面点击APP 图标 进入APP 首页的时候展示给用户的框架 比如微信 展示了有四个Tab 分别对应不同的板块 微信 通讯录 发现 我 现在市面出了少部分的
  • 什么是二叉树

    什么是二叉树 什么是二叉树 树有很多种 每个节点最多只能有两个子节点的叫二叉树 二叉树的子节点分为左节点和右节点 avatar 如果二叉树的所有叶子节点都在最后一层 并且结点总数 2 n 1 n为层数 则我们称之为满二叉数 avatar 如
  • C++——容器(set)

    1 std set是一个有序集合容器 内部元素按照键的排序顺序进行存储 默认情况下 元素是以升序排列的 每个元素在容器中是唯一的 即不允许重复元素 查找 插入和删除元素的平均时间复杂度为 O log n std set提供了一些有序集合特有
  • VMware 安装centos7 不带桌面的,命令行的那种

    环境准备 1 VMware Workstation Pro 安装好 2 centos7镜像下载好 下载一个centos7的镜像文件 下载地址 阿里云开源镜像站资源目录 安装centos7 1 点击创建虚拟机 2 自定义下一步 下一步非常多
  • Python将纵向数据进行分组之后横向转化

    那天也是在某个公司进行了面试 面试官出了一个题 将下面的这个表格的数据进行转化 转变形式为这种 OK 我承认 我当时感觉特别的紧张 直接不知道代码怎么去写 面试的时候我还是想了一种方法 我说我会新建两个字典来分别存储brand和produc
  • 目标检测中的Anchor

    前言 在计算机视觉四大基本任务 检测 分类 定位 分割 中 图像的目标检测受到的了研究者们越来越多的关注 今天我们就来聊一聊在目标检测中一项重要的机制 Anchor Anchor机制在凯明大神提出的Faster RCNN 2015年提出 时
  • MQTT 笔记:apollo mqtt server + paho-mqtt python

    记录下写client时遇到的一些问题 1 subscribe topic qos 和 publish topic payload None qos 0 retain False 网上找到的简单的client代码subscribe都放在回调函
  • linux gcc 头文件搜索路径

    一 头文件 gcc 在编译时寻找所需要的头文件 搜寻会从 I开始 然后找gcc的环境变量 C INCLUDE PATH CPLUS INCLUDE PATH OBJC INCLUDE PATH 再找内定目录 usr include usr