C C++第三方库的使用以及报错提示未找到库文件的原因
2017-02-20 13:57
375 查看
工作中,我们经常会借助第三方的库来开发,那么遇到的问题是,该怎么使用第三方库呢
举例例子,如果我们要使用libairLInk_lib.so这个库文件,他的库名是airLink_lib,很容易看出把库文件的lib和so去掉就是我们要使用的库名了。
怎么链接库文件呢
如果我们把库文件放到/usr/lib或者/usr/local/lib或者/lib下,我们可以直接在编译的时候执行make -lairLink_lib,就可以使用libairLInk_lib.so库了。
如果不在这三个目录下,这时就需要-L来指定库文件的路径了,否则会报错说找不到库文件。
注意:我们在编译库的时候,会出现4个库文件,如libA.so , libA.so.1 , libA.so1.0 , libA.so.1.0.0 ,如果我们只将libA.so ,复制到上述指定的三个目录,
编译的时候可能不会报错,但是运行可执行文件时,可能会报错未找到libA.so.1 ,这时就要将libA.so.1 ,复制到上述三个目录下,如果不确定那个的话,最好的方法
就是将生成的4个库文件都复制到上述目录下。
举例例子,如果我们要使用libairLInk_lib.so这个库文件,他的库名是airLink_lib,很容易看出把库文件的lib和so去掉就是我们要使用的库名了。
怎么链接库文件呢
如果我们把库文件放到/usr/lib或者/usr/local/lib或者/lib下,我们可以直接在编译的时候执行make -lairLink_lib,就可以使用libairLInk_lib.so库了。
如果不在这三个目录下,这时就需要-L来指定库文件的路径了,否则会报错说找不到库文件。
注意:我们在编译库的时候,会出现4个库文件,如libA.so , libA.so.1 , libA.so1.0 , libA.so.1.0.0 ,如果我们只将libA.so ,复制到上述指定的三个目录,
编译的时候可能不会报错,但是运行可执行文件时,可能会报错未找到libA.so.1 ,这时就要将libA.so.1 ,复制到上述三个目录下,如果不确定那个的话,最好的方法
就是将生成的4个库文件都复制到上述目录下。
相关文章推荐
- SVN提示文件被锁住以及Unlocker软件的使用
- Win7系统删除文件提示“文件名过长”怎么办?原因分析以及解决方法
- Android中使用AsyncTask实现文件下载以及进度更新提示
- swift pod第三方OC库使用use_frameworks!导致#import提示无法找到头文件
- 如何使用MAP文件找到程序崩溃的原因
- ArrayList 与HashSet的比较,及应用反射读取properties配置文件中的数据进行实例化再调用,以及类加载器的使用;还有HashCode的分析,及导致内存泄露,内存溢出的原因之一
- ueditor富文本的使用以及“未找到上传文件”时的解决办法
- 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
- winscp使用root登录时提示Permission denied的原因以及解决方案
- 如何使用MAP文件找到程序崩溃的原因
- 安装.NET Freamwork 提示error 25015,原因是出现了系统错误:另一个程序正在使用此文件
- 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
- 使用cocoapods导入第三方类库后 头文件没有代码提示?
- 使用cocoaPods导入第三方库,但头文件没有提示
- VB使用Kill删除文件时提示文件未找到
- 如何引用第三方提供的.so库文件以及如何使用javah生成.h文件
- 使用cocoapods导入第三方类库后 头文件没有代码提示?
- win7 Ghost系统使用迅雷下载文件提示"被封杀"的原因及解决方法
- 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
- Android中使用AsyncTask实现文件下载以及进度更新提示