linux下共享库的制作及常见的问题
将自己写的链表生成共享库
1、编译
2、设置库名:
库的名称格式:lib + XXX + 版本号.so (库的名称为XXX)
-shared 生成共享文件库 -fpic 动态链接
3、把头文件和.so文件放到系统目录下
(使用共享库了,把之前的#include “list.h” 改成 #include < list.h > ,删除该文件夹内的list.* ,就可以运行成功了)
4、链接库:gcc main.c -o main -lList
注意:如果.h没有放在系统路径下,要使用-I路径
如果.so没有放在系统路径下,要使用-L路径
如果共享库并没有放在系统路径下,如何解决运行时找不到的问题
1) 首先,把.h和.so移动到非系统路径下,链接生成可执行文件,运行时找不到:
2) 解决方法1:修改共享库配置文件/etc/ld.so.conf,把.so的路径加入到配置文件中;执行:ldconfig
解决方法2:配环境变量LD_LIBRARY_PATH
(不过,这种方法是临时的,只对当前用户本次登录有效)
也可以查看环境变量的值:$LD_LIBRARY_PATH
然后修改,LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/mnt/hgfs/share/
转载于:https://blog.51cto.com/13097817/2046748
linux下共享库的制作及常见的问题相关推荐
- Linux下共享库的查找顺序
http://www.cnblogs.com/lovevivi/archive/2013/01/15/2861211.html 在接手一个很古老的程序时,发现其所使用的动态库都实在是太陈旧了,正式运行 ...
- linux 下共享库创建及使用
1.创建共享库 [xpan@localhost 2.5.3]$ ls libhello.c libhello.h usehello.c [xpan@localhost 2.5.3]$ gcc -f ...
- 【Linux】Linux下静态库(.a)和动态库(.so)的制作和使用
如有错误,欢迎大家指正,感谢! 目录 一.程序工作过程简单介绍 1. 安装GCC 2. 源程序工作流程 3. 使用示例 4. gcc常用的编译参数选项 二.静态库的制作及使用 1. 库是 ...
- Linux中动态库(共享库)的制作与使用
0. 库的基本概念 见博客:Linux中静态库的制作与使用 0.1 动态库的工作原理 首先回忆一下静态库,使用静态库,在GCC进行链接时,会把静态库中代码打包到可执行程序中. 但是使用动态库,在GCC ...
- Linux下动态库和静态库制作与调用
Linux下动态库和静态库制作与调用 1.动态库和静态库简介 静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...
- linux下静态库、动态库总结
一.基本概念 1.1.什么是库 在 windows 平台和 linux 平台下都大量存在着库. 本质上来说库是一种可执行的二进制代码(但不可以独立执行),可以被操作系统载入内存执行. 由 ...
- nux下共享库(SO)有关的几个环境变量 zz
Linux支持共享库已经有悠久的历史了,不再是什么新概念了.大家都知道如何编译.连接以及动态加载(dlopen/dlsym/dlclose) 共享库.但是,可能很多人,甚至包括一些高手,对共享库相关的 ...
- linux 动态库建立,浅析linux下静态库和动态库的建立和使用
在粤嵌学了很多知识,我们把常用的公用函数放在一起做成一个函数库,可以供其他程序共同使用,函数库本质上说,是一个可执行代码的二进制形式,可被操作系统载入内存执行.linux下的库分为两种:静态库,后缀名 ...
- Linux下动态库的创建与更新
Linux下动态库(libname.x.y.z)的创建与更新 由于主程序和它依赖的共享库是由不同的开发者开发的.共享库的开发者会不停地更新共享库的版本,以修正bug,增加功能或改进性能.版本多了之后, ...
最新文章
- SVN:服务器资源删掉,本地添加时和删掉的名字同名出现One or more files are in a conflicted state....
- VS2013 VS2015 VS2017调试出现无法启动iis express web服务器
- 前端基本功—javascript 第三天
- linux centos7.6.1810安装nfs命令整理
- 阿里开源量子模拟器“太章2.0”,支持量子算法和纠错探索
- mobx中跟新了数据视图没变化_【第1781期】MobX 简明教程
- php session警告屏蔽,PHP Session的一个警告
- 文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型
- mysql自动备份工具 linux_自动备份MYSQL方法 (Linux)
- harmonyOS应用开发环境搭建
- 解锁Insyde的BIOS隐藏设置
- [竞品分析] 猿辅导-K12在线教育产品
- ActiveX是什么?界面开发有哪些好用的ActiveX控件推荐?
- APP测试面试题汇总基础+进阶
- 用python-sklearn做广州房价预测——以此为例说明如何使用python做简单的数据分析
- 一次简单的爬虫过程记录:静态网页小说下载
- 网易博客日志:COSTAS环低通滤波器设计及环路增益设计
- 跟同事在BOSS直聘发现了一个前端小秘密
- 仿京东购物界面放大镜效果
- 【目标监测】CenterNet原理详解
热门文章
- springCloud 搭建Eureka
- STM32CubeMX的安装
- solution for python can not import local module
- G4560 HD610安装黑苹果Hakintosh
- Atitit 基于dom的游戏引擎
- window 2008+apache2.4.4+php5.5+mysql-5.6.12+phpmyadmin4.0.4.1安装过程(参考他人文章基础上加上自己遇到的问题)...
- 服务:OracleDBConsoleorcl [Agent process exited abnormally during initialization]
- DotText研究资料整理
- Java中常见的排序算法代码演示
- vb红绿灯自动切换_VB红绿灯程序.doc