Linux下动态库(*.so)的生成和使用 [2014-01-02更新]
来源:互联网 发布:百度云盘vip破解版mac 编辑:程序博客网 时间:2024/06/05 02:03
本文结合自己编写的cJSON Makefile进行简单说明。
Makefile文件内容如下:
-------------------------------------------------------------------
all: libcjson.so test
libcjson.so: cJSON.o
cc -shared -o libcjson.so cJSON.o # 添加 -shared 参数
test: test.o
cc -o test test.o -lm -L./ -lcjson # -L 指定动态库所在的路径
cJSON.o: cJSON.h cJSON.c
cc -fpic -c cJSON.c # 添加 -fpic 参数
test.o: test.c
cc -c test.c
clean:
rm -rf *.o *.so test
libcjson.so: cJSON.o
cc -shared -o libcjson.so cJSON.o # 添加 -shared 参数
test: test.o
cc -o test test.o -lm -L./ -lcjson # -L 指定动态库所在的路径
cJSON.o: cJSON.h cJSON.c
cc -fpic -c cJSON.c # 添加 -fpic 参数
test.o: test.c
cc -c test.c
clean:
rm -rf *.o *.so test
-------------------------------------------------------------------
# ./test // 直接运行会出现如下错误
./test: error while loading shared libraries: libcjson.so: cannot open shared object file: No such file or directory
解决方法:
方法一:将 *.so 拷贝至 /lib 或 /usr/lib 目录;
方法二:执行 export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH,将 *.so 所在路径,即当前路径添加到环境变量中。
由此可见,动态库在程序链接和运行时都需要使用。
0 0
- Linux下动态库(*.so)的生成和使用 [2014-01-02更新]
- Linux 下 动态链接库 .so 的生成和使用
- Linux下动态库so的生成与使用
- Linux下动态库so的生成与使用
- Linux下动态链接库so的生成与使用
- Linux下动态库so的生成与使用
- Linux环境下动态库的生成和使用 (.so文件)
- Linux环境下动态库的生成和使用 (.so文件)
- Linux环境下静态库和动态库的生成和使用 (.a文件和.so文件)
- Linux下c和cuda混合编译,并生成动态链接库.so和使用
- Linux下c和cuda混合编译,并生成动态链接库.so和使用
- Linux下c和cuda混合编译,并生成动态链接库.so和使用
- Linux 下使用gcc生成so(动态链接库)文件
- linux下.so动态库的生成、编译、调用
- linux下生成动态链接库.so
- Linux下Eclipse进行C++编程动态库so的生成与使用
- Linux 下动态链接库 *.so(生成、调用)
- Linux下so文件的生成和使用
- servlet基础
- mysql基础知识
- 如何做一个针对百度搜索引擎友好的网站
- 父母最坏与最好的五句话
- PID算法实现(c 语言)(来自老外)
- Linux下动态库(*.so)的生成和使用 [2014-01-02更新]
- Android 图片SD卡缓存
- 少用activity多用application context可以避免内存泄露
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- Linux Sort & Uniq
- 有关Hibernate 4获得sessionFactory的例子
- java中的Math类
- 内存溢出之Tomcat内存配置
- Android公共库