g++无法找到动态库问题

news2024/11/24 19:25:23

文章目录

  • 一、错误发现
  • 二、include两种查找方式
  • 三、路径
    • 1.gcc与g++路径
    • 2.头文件路径
      • (1)默认路径
      • (2)使用-l指定路径寻找。
      • (3)gcc搜索头文件的顺序
    • 3.库文件路径
      • (1)默认路径
      • (2)编译时指定路径
      • (3)在配置文件中指定路径
      • (4)通过环境变量
      • (5)查找顺序

一、错误发现

在使用各种各样的C++库的时候,有的时候会遇到找不到的问题,特此整理此博客来记录gcc/g++链接动静态库的过程。

二、include两种查找方式

#include<>表示默认系统路径下寻找。
#include""表示先在当前路径寻找,再去系统路径寻找。

三、路径

1.gcc与g++路径

  • gcc/g++的可执行文件的路径都在/usr/bin中。

2.头文件路径

gcc与g++所查找的头文件所在路径有两种种情况:

(1)默认路径

默认指定到/usr/include路径。但是在一些编写驱动模块的设定中,会强制gcc不去搜索默认路径,此时可以加-nostdinc选项,此时必须使用-l来指定路径。

(2)使用-l指定路径寻找。

(1)假设文件结构如下:
test.c
test/test.h
(2)此时有两种方式来找到这个头文件:

第一种方式在test.c的这样包含头文件:#include"test/test.h"
第二种方式在gcc执行的时候:gcc -l test test.c

(3)gcc搜索头文件的顺序

先按顺序查找-l指定的路径,然后在gcc的环境变量中寻找,最后再去内定目录中查找。
注意这只是头文件的指定,下面介绍库文件的查找方法。

3.库文件路径

(1)默认路径

动态库的默认搜索路径在/lib和/usr/lib中。

(2)编译时指定路径

-L后的内容表示的是库的路径,-l后表示的是库的名称。

(3)在配置文件中指定路径

在配置文件/etc/ld.so.conf中指定动态库搜索路径,其中他的每一行都是一个搜索路径。每次编辑完该文件之后都要执行ldconfig来进行刷新。

(4)通过环境变量

通过环境变量LD_LIBRARY_PATH指定动态库搜索路径。
在这里插入图片描述
同时也可以使用export指令来更新环境变量。

(5)查找顺序

1.编译目标代码时指定的动态库搜索路径。
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径。
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径。
4.默认的动态库搜索路径/lib。
5.默认的动态库搜索路径/usr/lib。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

栈进阶:ElasticSearch

栈进阶&#xff1a;ElasticSearch 文章目录前言一、学习ES1、ES课程简介2、聊聊Lucene创始人3、ES概述1、历史2、谁在使用3、ELK简介4、Solr和ES的差别1、ES简介2、Solr简介3、Lucene简介4、ElasticSearch与Solr比较5、ES安装及head插件安装1、ES安装2、Window下安装3、安装可视…

【深入浅出Spring6】第十期——尾声

一、Spring集成了Junit 之前我们只是使用Junit的测试注解 Test&#xff0c;并没有使用Spring对于Junit的支持 Spring6既支持Junit4、也支持Spring5 要想使用Spring对于Junit的支持&#xff0c;我们需要在pom中导入相关依赖 <!--我们引入Spring对junit支持的依赖 >> …

[LeetCode/力扣][Java] 0315. 计算右侧小于当前元素的个数(Count of Smaller Numbers After Self)

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;按要求返回一个新数组 counts 。数组 counts 有该性质&#xff1a; counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例1&#xff1a; 输入&#xff1a;nums [5,2,6,1] 输出&#xff1a;[2,1,1,0] 解释&…

CSS3------什么是css

什么是CSS 层叠样式表Cascading Style Sheets&#xff0c;缩写为CSS&#xff0c;是一种样式表语言&#xff0c;用来描述HTML或XML&#xff08;包括如SVG、MathML、XHTML 之类的XML 分支语言&#xff09;文档的呈现。 CSS描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被…

uniapp之路由中携带参数跳转

目录 前言 一 路由跳转方式 1. 直接在 template中定义 2.直接在methods中定义 二 携带参数 1.在template中定义 2.在methods里定义 3. 拼接 前言 在我们写 uniapp 小程序时&#xff0c;时常遇到的就是路由携带参数进行跳转&#xff0c;这项功能似乎已成家常便饭一样&am…

(八)笔记.net core学习之特性Attribute声明、使用、验证

1.特性Attribute 特性&#xff1a;是用于在运行时传递程序中各种元素&#xff08;比如类、方法、结构、枚举、组件等&#xff09;的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号&#xff08;[ ]&…

缺陷修改实践——replace函数的运用|思考?

目录介绍问题出现问题分析解决方法优化实现总结介绍 大家好&#xff0c;我是清风。今天给大家分享一个项目中遇到问题解决问题的案例&#xff0c;编程其实就是一个思考的过程&#xff0c;缺少思考就没有灵魂&#xff0c;遇到问题先静下心去思考&#xff0c;想到方法后再去实践。…

HTML小游戏11 —— 横版恐龙大冒险游戏(附完整源码)

&#x1f482; 网站推荐:【神级源码资源网】【摸鱼小游戏】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且实用的计…

U++ 插件学习笔记

Type&#xff1a; Editor&#xff1a;插件只能在编辑器有效 Runtime&#xff1a;代表打包出来也会有插件功能 Developer&#xff1a;开发者模式可以使用插件功能 Program&#xff1a;独立的小程序 ServerOnly&#xff1a;服务端可以使用插件功能 ClientOnly&#xff1a;客户…

三西格玛和六西格玛区别是什么?优思学院用一幅图告诉你

3西格玛和6西格玛的质量水平相距甚远&#xff0c;这个视频中用了三个实例说明了两者在不同行业上的具体绩效表现。优思学院认为&#xff0c;企业只有追求完美&#xff0c;不断改进流程&#xff0c;才能不断超越现状&#xff0c;才可以取得更大的业绩。 西格玛水平代表不同的过程…

朋友电脑密码忘了,我当场拔了她的电源,结果。。。

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 Windows密码忘了怎么办&#xff1f;一、5次shift键弹出粘滞键二、异常断电触发系统的自动修复三、未登录修改系统文件四、登录界面5次shift键…

【云原生 | 45】Docker搭建Registry私有仓库之配置Registry详解

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

连接SQL Server 数据库

目录 一、启动 SQL Server Management Studio 1. 点击 SQL Server Management Studio 菜单进入 2. 选择服务器和身份验证方式 3. 点击连接进入数据库 二、新建数据库 1.数据库的概念 2. 看看当前有哪些数据库 3. 新建数据库 三、新建查询 1. 选中 test 数据库…

编码踩坑——记一次fastjson引发的空指针问题、引用标识$ref

本篇介绍在使用fastjson过程中遇到的一个问题&#xff0c;从而引申出使用fastjson时的注意事项——&#xff08;1&#xff09;尽量避免在实体中定义 get 开头的方法&#xff1b;&#xff08;2&#xff09;避免较深的实体字段层级&#xff1b;&#xff08;3&#xff09;避免实体…

企业信息化改革怎么做?

前几天遇到一位朋友提问&#xff0c;他说他们公司目前需要进行信息化改革&#xff0c;问我有哪些好用的信息化管理系统推荐&#xff1f;并附上了几点要求&#xff1a; 扩展性强&#xff08;公司管理结构变化很快&#xff0c;套装软件扩展升级太麻烦&#xff0c;并不适合&#…

怎样建立自己网站?【建立网站】

怎样建立自己网站&#xff1f;以前建立网站大部分情况下都是需要懂编程&#xff0c;又或者是懂一点代码然后去找源码模板做二次开发。不过随着技术的发展&#xff0c;建立自己网站的方式也在变多&#xff0c;例如目前比较流行的自助搭建网站。那么怎样建立自己网站呢&#xff1…

全卷积神经网络图像去噪研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、网络结构✳️ 三、实验结果✳️ 3.1 数据集与网络训练✳️ 3.2 卷积神经网络去噪实验✳️ 3.3 基于BM3D的对比实验✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 图像去噪在底层视觉中的重要性可以从多方面体现出来。首先&…

批量导入Npm包依赖到Nexus私服(批量上传脚本)

背景 批量导入是在以下几点情况下产生的需求&#xff1a; 已有Nexus系统&#xff0c;在测试构建环境中Nexus系统为离线环境不能配置外网代理自动下载项目代码工程所在工作电脑有条件联网现需要将项目代码在测试构建环境中连接Nexus私服进行编译构建 基于上面几点情况&#x…

HTML+CSS美食静态网站设计【海鲜网站】web结课作业的源码 web网页设计实例作业

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Spring Security(3)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 前面运行写好的代码之所以没有任何显示&#xff0c;是因为还没有对Spring Security进行配置&#xff0c;当然啥也不显示了。这就好比你坐在车上&#xff0c;却不…