ubuntu下动态链接库的编译和使用
来源:互联网 发布:网络日记本软件 编辑:程序博客网 时间:2024/05/30 05:23
声明:本博文用于学习总结及工作心得
环境:Uabntu 14.04
1.设置从当前目录下加载动态库so文件(LD_LIBRARY_PATH)
linux的excutable在执行的时候缺省是先搜索/lib和/usr/lib这两个目录,然后按照ld.so.conf里面的配置搜索绝对路径,
linux缺省是不会在当前目录搜索动态库的。
1、临时修改,log out之后就失效
在terminal中执行:export LD_LIBRARY_PATH=./
2、让当前帐号以后都优先加载当前目录的动态库
在ubuntu中修改~/.profile在文件末尾加上两行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH
(而在其它linux中要修改的文件的名称是~/.bash_profile)
3、让所有帐号从此都优先加载当前目录的动态库
修改/etc/profile在文件末尾加上两行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH
2.编写makefile文件
1. .so动态库makefile文件
.SUFFIXES:.c .o
CC=gcc
SRCS=test.c
OBJS=$(SRCS:.c=.o)
EXEC=libtest.so
start: $(OBJS)
$(CC) -shared -o $(EXEC) $(OBJS)
@echo '-----------OK-----------'
.c.o:
$(CC) -Wall -g -fPIC -o $@ -c $<
clean:
rm -rf $(OBJS)
2.运行程序makefile文件
.SUFFIXES:.c .o
CC=gcc
SRCS=a.c
OBJS=$(SRCS:.c=.o)
EXEC=a
start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS) -L. -ltest
@echo '-----------OK-----------'
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -rf $(OBJS)
3.make 后执行
如果出现链接出错,动态库中的函数未声明,请看一下使用参数位置出错
- ubuntu下动态链接库的编译和使用实例
- ubuntu下动态链接库的编译和使用实例
- ubuntu下动态链接库的编译和使用
- ubuntu下动态链接库的编译和使用实例
- ubuntu下动态链接库的使用
- ubuntu下用Gcc编译器编译c语言的静态和动态链接库范例
- Ubuntu下的进行动态链接库创建和使用的方法
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- Linux下使用gcc进行静态编译和使用动态链接库编译
- Linux 动态链接库的编译和使用实例
- 老生常谈--关于Linux下编译和使用动态链接库静态链接库
- 关于Linux下编译和使用动态链接库静态链接库
- Linux编译动态链接库和使用
- 编译链接------Linux环境下c语言静态链接库和动态链接库创建和使用
- 编译链接------Linux环境下c语言静态链接库和动态链接库创建和使用
- GCC 编译使用动态链接库和静态链接库
- 用python读取MiniSEED格式文件
- Uboot学习前传
- qq、微信二次分享记录
- Oracle中编写Sql语句注意事项
- 小程序自学系列(零基础学小程序002)---小程序实现电商秒杀倒计时效果
- ubuntu下动态链接库的编译和使用
- 读取数据库某字段,并在label上显示
- 经典八大排序算法
- android应用首次登录前实现页面跳转
- 一步一步学区块链(2)工具和技术的介绍
- 慢慢十年,一品温如言
- 【Vim】Vim的常用小技巧笔记(不定期更新)
- Lombok 安装、入门 - 消除冗长的 java 代码
- leetcode题解分析_85. Maximal Rectangle