C语言创建共享库(动态库)步骤:

创建sth.c,共享库源文件:

//sth.c库源程序
unsigned long long sth(unsigned int x, unsigned int y)
{
return (x+y+x*y);
}

创建测试文件:

//test.c
#include<stdio.h>
#include<stdlib.h> int main(int argc, char *argv[])
{
unsigned int x, y;
sscanf(argv[], "%u", &x);
sscanf(argv[], "%u", &y); long long res = sth(x, y);//调用共享库文件的定义的函数
printf("answer is %u\n", res);
return ;
}

生成库文件:

首先使用 gcc 的-fPIC 选项为动态库构造一个目标文件:

gcc -fPIC -Wall -c sth.c

接下来,使用-shared 选项和已创建的目标代码,生成一个动态库libsth.so:

gcc -shared -o libsth.so sth.o

下面编译测试主程序,它将会链接到刚生成的动态库 libsth.so:

gcc -o test test.c -L . -lsth
sudo cp libsth.so /lib
./test
answer is

最新文章

  1. 苹果 OS X 系统U盘重装-抹盘重装、系统盘制作
  2. java基础1_标识符,数据类型
  3. 人人都是 DBA(II)SQL Server 元数据
  4. Mac 下安装PHP遇到的问题
  5. mssqlserver 分日志(日志文件过大)
  6. JAVA基础知识之Collections工具类
  7. jQuery轮播图
  8. Crypto API加密通信流程
  9. 正确理解ContentPresenter
  10. Oracle数据库表的备份和数据表的删除操作
  11. HTML5新增结构标签
  12. Apache FileUpload实现文件上传
  13. GitHub安装失败
  14. mybatis里面的 #{}和${}
  15. [USACO09DEC]牛收费路径Cow Toll Paths
  16. ejabberd编译更新脚本
  17. Timer定时方法(间隔时间后执行)
  18. Javascript高级编程学习笔记(84)—— Canvas(1)基本用法
  19. Oracle数据库 基础SQL语句练习
  20. WebSocket 实现链接 群聊(low low low 版本)

热门文章

  1. .netcore 3.1高性能微服务架构:加入swagger接口文档
  2. 表结构修改以及sql增删改查
  3. AM335X的应用程序自启动流程以及U盘更新应用程序记录
  4. LitElement(一)概述
  5. css和js处理隔行换色的问题
  6. 大数据-sparkSQL
  7. Java-POJ1012-Joseph
  8. Docker - 构建一个简单的应用镜像
  9. mvn + testng + allure 生成自动化测试报告
  10. 每天进步一点点------创建Microblaze软核(一)