当前位置: 首页 > news >正文

C语言自定义库

  1. 编写 xx.c 和xx.h文件\
  2. 将源代码编译为目标文件 gcc -c add.c sub.c 执行完毕后会生产add.o和sub.o文件
  3. 静态库创建使用ar命令;
    ar -r libmymath.a add.o sub.o
  4. 将库和main.c文件一起编译 gcc -o main main.c -lmymath -L./

注意 上述书写格式不要错乱 -L 是指定文件路径
在这里插入图片描述

#include"add.h"
int add(int a,int b)
{return a+b;
}
//add.h"
#ifndef C_ADD_H
#define C_ADD_H
int add(int a,int b);
#endif//sub.c
#include"stdio.h"
int sub(int a,int b)
{return a-b;
}//sub.h
#include"stdio.h"
int sub(int a,int b)
{return a-b;
}
//main
#include"stdio.h"
#include"add.h"
#include"sub.h"int main()
{int a=20,b=10;int c;c = add(a,b);printf("%d\n",c);return 0;
}

动态库制作

  1. 动态库对应的源文件 “test_lib.c”
  2. 动态库对应的头文件 “test_lib.h”
gcc test_lib.c -fPIC -shared -o libtest.so说明: -fPIC   :表示生成位置无关代码(PIC:Position Independent Code)-shared : 表示创建生成动态共享库gcc test_bin1.c -L. -ltest -o test1说明:编译的时候指定了libtest.so(上述编译好的动态库)
//test_lib.c
#include "stdio.h"void test_print(void) {printf("======= This is a test line.\n");return;
}//test_lib.h
#ifndef __TEST_H
#define __TEST_H
void test_print(void);
#endif
http://www.lryc.cn/news/320866.html

相关文章:

  • 目标检测常见数据集格式(YOLO、VOC、COCO)
  • 搭建 es 集群
  • Android弹出通知
  • 如何用 UDP 实现可靠传输?并以LabVIEW为例进行说明
  • 【任职资格】某大型商业金融银行任职资格体系搭建项目纪实
  • 如何利用IP地址分析风险和保障网络安全
  • 轧钢自动化中的智能仪器:监控、控制和优化新视角
  • 第十四届蓝桥杯省赛C++B组题解
  • 语音控制模块_雷龙发展
  • idea 开发serlvet班级通讯录管理系统idea开发mysql数据库web结构计算机java编程layUI框架开发
  • Python高级语法
  • HTML5语义化元素
  • Android 性能优化——APP启动优化
  • 计算机网络:TCP篇
  • 【NLP11-迁移学习】
  • Android11 FallbackHome启动和关闭流程分析
  • elasticsearch-java api 8 升级
  • HCIA_IP路由基础问题?
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • 高架学习笔记之信息系统分类概览
  • 2023新版mapinfo美化电子地图 新版2013Arcgis shp电子地图 下载
  • BUUCTF-Ezsql1
  • LiveGBS流媒体平台GB/T28181功能-大屏播放上大屏支持轮巡播放分屏轮巡值守播放监控视频轮播大屏轮询播放轮播
  • npm和pnpm安装、更换镜像源
  • springcloud 复习day1~[自动装配]
  • 模块化开发在不同编程语言中的实现方式有何异同?并以LabVIEW为例进行说明
  • 外贸网站文章批量生成器
  • maven一点通
  • 超越标签的探索:K-means与DBSCAN在数据分析中的新视角
  • linux板子vscode gdb 远程调试