linux怎么配置库目录附加依赖项

linux怎么配置库目录附加依赖项,第1张

一、添加附加包含目录

      法1:-I path(path为头文件路径

      法2:将头文件拷贝到 /usr/local/include中

      相当于VS中添加包含路径。

二、添加依赖

       法1,编译阶段,g++编译器编译:

       -L path –lcaffe(path为附加库目录路径;-l指定附加依赖项,比如-lcaffe表示附加libcaffe.so动态库文件)。

执行阶段,在工作目录或环境变量中搜索dll文件:

       添加环境变量:

2.1 /etc/ld.so.conf 文件中方法:

添加库目录,使其成为共享库:

2.1.1、 打开文件:sudo gedit /etc/ld.so.conf

2.1.2、在文件中添加路径(如libnnpack.so的路径)

2.1.2、使其生效:sudo ldconfig

2.2     export方法,参考:http://blog.csdn.net/xzzppp/article/details/53305120

VS中添加附加库目录路径和附加依赖项,分别如下图所示:

法2,在编译阶段直接指定: path/libcaffe.so(path为附加库目录路径,libcaffe.so为动态库,在执行阶段可以直接运行)

法3,, Linux动态库的默认搜索路径是/lib和/usr/lib,将动态库拷贝到这两个文件夹下面。

这只能说明一个问题,你依赖的库本身有问题,没有把它的依赖都加进去,也就是你例子中的①libb.so依赖liba.so,你应该在生成libb.so的时候,把对liba.so的依赖加进去,这样应该就没有问题了。

你想知道什么?依赖关系最简单的一个理解就是Windows上你玩游戏结果提示directx版本过低无法运行。以及常见的运行某个程序之后提示mfc71.dll未找到。还有就是用个软件结果安装说明上让你先去安装.net。Linux的依赖关系因为他的整个系统都是由各个不同的开发组开发的软件集合而成(这点不知道电话是不可能理解Linux依赖关系的起因的),每个软件都有不同的功能提供和调用。而Linux因为他的软件包组成可以很灵活,某些软件包不是必须的,有些软件功能可以有很多软件进行提供。所以有些软件互相之间的功能需求就需要“依赖关系”这种描述来进行说明控制。Windows也有这个问题,只不过因为整个系统是微软统一提供的,所以他可以进行版本接口公职,以及方便的通知附带多个版本的函数库和程序进行功能提供,以及强行的提供一些用户其实根本不需要的软件来提供Windows程序的“依赖关系”。依赖关系很明显的就是一些超高精简的XP去掉的内容会导致很多软件不能运行。可以说,简单的去掉IE,就可以让很多Windows程序失去依赖关系而不能运行。Linux的软件包管理器就是有解决这个问题而设计的原因。软件包管理器通过分析软件包里面的描述信息和系统当前安装情况的数据库来确定依赖关系是否满足和如何满足依赖关系(也就是需要再安装哪些软件才行)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7584114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存