博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux动态链接
阅读量:6115 次
发布时间:2019-06-21

本文共 881 字,大约阅读时间需要 2 分钟。

1, 编译,使用-shared和-fpic 生成动态链接库

库源码:test.c

#include 
#include
#include
static void printline(int len){ int i; for(i = 0;i

头文件:test.h

#ifndef __TEST_H__#define __TEST_H__void print(char * s);#endif

编译库文件:

gcc test.c -shared -fpic -o libtest.so

2.编译测试代码

测试代码:main.c

#include "test.h"int main(){    char teststr[] = "hello world";    print(teststr);    return 0;}

编译测试代码

gcc  main.c -L./ -ltest -o main

3.运行

当运行时,发现找不到库文件

./main: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory

这个是linux库文件搜索路径的问题,有两个解决方式

  1. 在/etc/ld.so.conf.d/下编写配置文件,指定库路径,然后使用ldconfig去刷新缓存
  2. 在执行前设置环境变量 LD_LIBRARY_PATH,指定当前的路径,再去执行时,则现在本地去搜索
root@GFD:~/workspace/so_test# export LD_LIBRARY_PATH=./root@GFD:~/workspace/so_test# ./main===========hello world===========

转载于:https://blog.51cto.com/6306331/2067710

你可能感兴趣的文章
Android AOP编程
查看>>
知道网站怎么做吗?
查看>>
教你如何屏蔽网络视频开头的烦人广告
查看>>
ADO ODBC操作MySQL 控制台小例
查看>>
IO监控
查看>>
自动登录用的VBscript脚本
查看>>
2018-1-9Linux基础知识(20)文件查找命令
查看>>
数据库查询返回特定结果即分页查询
查看>>
网络端口之五端口一览表
查看>>
android猜猜红桃A游戏源码
查看>>
一篇有意思的招聘帖子
查看>>
NoSQL之 MongoDB 简介和应用
查看>>
mysql修改 innodb_buffer_pool 大小笔记
查看>>
Java 获取系统信息
查看>>
Spring学习笔记(三)
查看>>
选择linux学习第一步_我的决心书
查看>>
BaseAdapter的使用及优化
查看>>
MySQL崩溃恢复过程常见错误分析
查看>>
openstack 架构
查看>>
关于函数
查看>>