GCC如何生成并调用静态库

news2024/12/25 2:14:05

一,简介

本文主要介绍如何使用gcc编译代码生成静态库,并调用静态库运行的操作步骤。

二,准备工作

使用add.c和main.c生成test可行性文件的流程图:
在这里插入图片描述

add.c文件的内容:

#include "add.h"

int add(int a, int b)
{
	printf("call add function: %d + %d = %d\r\n", a, b, a+b);
	return a+b;
}

add.h文件的内容:

#include <stdio.h>

int add(int a, int b);

main.c文件的内容:

#include <stdio.h>
#include "add.h"

int main()
{
	int a=4, b=5;
	add(a, b);
	a++;
	b++;
	add(a, b);
	return 0;
}

三,操作步骤

3.1 使用add.c生成libmath.a

生成对应目标文件:

gcc -c add.c 

将目标文件打包生成静态库:

ar -crv libmath.a add.o

3.2 调用libmath.a静态库生成可执行文件test

这里提供三种方法,选取其中一个即可。

方法一:-L路径 -l算法库名称

gcc -o test main.c -L. –lmath

方法二:直接加库的路径

gcc main.c libmath.a -o test

方法三:先生成main.o再打包成可执行文件

gcc -c main.c
gcc -o test main.o libmath.a

3.3 运行可执行文件test

$ ./test.exe
call add function: 4 + 5 = 9
call add function: 5 + 6 = 11

综上,静态库打包和运行均已完成。

四,总结

本文主要介绍了如何生成静态库,以及如何调用静态库的方法,供参考。欢迎一起交流讨论~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自学网络安全, 一般人我劝你还是算了吧

前言&#xff1a;自学我劝你还是算了&#xff0c;我为什么要劝你放弃我自己却不放弃呢&#xff1f;因为我不是一般人。。。 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 …

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入&#xff0c;我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段&#xff0c;需要在每个版本中&#xff0c;对某些新增接口进行性能测试&#xff0c;有时还需要在一天中的不同时段分别进行…

计算如何与实验结合发Science

理论计算与实验结合的研究已经成为TOP期刊中的主流方式。近日&#xff0c;上海交通大学种丽娜副教授一项关于质子交换膜水解槽阳极催化剂的研究成果在Science发表。该工作报道了一种由沸石甲基咪唑酯骨架&#xff08;Co-ZIF&#xff09;衍生并通过静电纺丝处理的镧和锰共掺杂的…

Python 修复共享内存问题和锁定共享资源问题

文章目录 使用 multiprocessing.Array() 在 Python 中使用共享内存解决多进程之间共享数据问题的解决方案 使用 multiprocessing.Lock() 锁定 Python 中的共享资源 本篇文章解释了多处理共享内存的不同方面&#xff0c;并演示了如何使用共享内存解决问题。 我们还将学习如何使用…

Axure教程—图片手风琴效果

本文将教大家如何用AXURE制作图片手风琴效果 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://6nvnfm.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87847313?spm1001.2014.3001.5501 二、功能介绍 图片自动播放为手风…

MT4交易外汇平台有哪些优势?为何是外汇投资首选?

外汇市场上存在着各种各样的外汇交易商&#xff0c;但是很多的外汇交易商所选择的交易平台都是MT4交易外汇平台。作为全世界范围内使用最为广泛的交易平台&#xff0c;MT4交易外汇平台具有哪些优势&#xff0c;能够让外汇交易商和外汇投资者都选择使用。本文就来具体的聊聊&…

SQL中not in的一个坑

因not in 效率较低&#xff0c;在工作用一只用left join代替&#xff0c;在某一次查询使用了not in发现&#xff0c;结果为空&#xff0c;sql大致如下 select id from table1 where id not in (select id from table2)经过查询发现select id from table2里面的id有null值导致该…

司法大数据解决方案

2018年11月26日&#xff0c;司法部制定了《智慧监狱技术规范SFT0028-2018》并于2019年1月1日正式颁布实施&#xff0c;要求智慧监狱的建设应者眼于监狱工作实际&#xff0c;将物联网、云计算、大数据、人工智能等新一信息技术与监狱各项业务深度融合&#xff0c;形成标准规范科…

论文解读 | 基于改进点对特征的点云6D姿态估计

原创 | 文 BFT机器人 01 摘要 点对特征(PPF)方法已被证明是一种有效的杂波和遮挡下的姿态估计方法。 文章的改进方法主要包括: (1)一种基于奇偶规则求解封闭几何的法向的方法; (2)通过将体素网格划分为等效角度单元的有效降采样方法; (3)基于拟合点的验证步骤。在真实杂波数据集…

如何挖掘360下拉词,怎么删除360下拉负面词

大多数人的手机或者电脑上都安装了360浏览器&#xff0c;360搜索APP等&#xff0c;安装的用户量大&#xff0c;自然使用的用户也就多了&#xff0c;360下拉的优势就展现出来了&#xff0c;展示量大&#xff0c;全国各地均可见&#xff1b;能够引流来的都是相对精准的目标用户&a…

C#简单数据结构类和常用泛型结构类

文章目录 1.简单数据结构类&#xff08;1&#xff09;动态数组Arraylist&#xff08;2&#xff09;栈Stack&#xff08;3&#xff09;队列Queue&#xff08;4&#xff09;哈希表Hashtable 2.泛型3.常用泛型数据结构类&#xff08;1&#xff09;列表List&#xff08;2&#xff0…

高完整性系统:Fault Tolerant Design

目录 1. INTRODUCTION TO FAULT TOLERANCE 1.2 Definitions 1.3 Two Kinds of Faults 1.4 Hardware vs Software Faults 1.4.1 Failure Curve for Hardware 1.4.2 Hardware and Software Failures 1.5 Causes of Failures 1.6 3 Ways to Class Failures 1.6.1 Tempora…

Java 岗史上最全八股文面试真题汇总,堪称 2023 年面试天花板

前言 现如今&#xff0c;Java 面试的本质就是八股文&#xff0c;把八股文面试题背好&#xff0c;面试才有可能表现好。金九银十招聘黄金季已经来临&#xff01;大家在考研和找工作中纠结的时候&#xff0c;不妨先看一下面试题&#xff0c;毕竟我们的最终目标就是为了找一份心仪…

机器视觉怎么对陶瓷板外观尺寸进行自动检测?

随着陶瓷行业的发展&#xff0c;陶瓷板的生产和质量控制面临越来越高的要求。而机器视觉技术作为一种高精度、高效率、无损、可靠性高的自动化检测手段&#xff0c;已经成为陶瓷板外观尺寸自动化检测的首选方案。本文就如何利用机器视觉对陶瓷板外观尺寸进行自动检测进行分析和…

配电室的管理制度及综合监控系统的介绍

安科瑞虞佳豪 1、配电室全部机电设备&#xff0c;由配电室人员负责管理和值班&#xff0c;停送电由值班电工操作&#xff0c;非值班电工禁止操作&#xff0c;无关人员禁止进入配电室&#xff1b;公司内有关上级部门因检查工作&#xff0c;必须要进入这些场所时&#xff0c;应由…

【温故而知新】阶段总结!我在技术成长过程中的收获!

时间&#xff1a;2023年05月31日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 【20230531】【温故而知新】阶段总结&#xff01;我在技术成长过程中的收获&#xff01;_小蒋聊技术_免费在线阅读收听下载 - 喜马拉雅手机版欢迎…

第十八章行为性模式—观察者模式

文章目录 观察者模式解决的问题结构实例存在的问题使用场景 JDK 提供的实现 - Observable示例 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;它涉及算法与对象间职责的分配。行…

WMI系列--WMI订阅事件

前边对于WMI的基础内容进行简单的总结和整理&#xff0c;结下来的这篇内容主要针对WMI的永久订阅事件展开详细的阐述。 WMI事件订阅机制 WMI事件分为两类&#xff0c;分别是本地事件订阅和永久性事件订阅。 所谓本地事件是指运行在本地上下文环境当中的单个进程的事件&#x…

入门编程的方法和步骤

编程是信息时代必备的一项技能&#xff0c;无论是从事计算机行业的人员&#xff0c;还是从事其他行业的人员&#xff0c;学会编程对个人职业发展都有着重要的意义。但是&#xff0c;对于初学者来说&#xff0c;如何入门编程往往是一个比较棘手的问题。本文将介绍一些入门编程的…

训练YOLOv5对象检测模型的逐步指导

介绍 欢迎来到我们的 YOLOv5 教程系列的第 2 部分!如果您还没有查看本系列的第 1 部分,我建议您先阅读该部分;它涵盖了如何在 Windows 和 Google Colab 上安装用于真实对象检测的 YOLOv5 ,我们假设您已在本报告中完成了这些操作。 也就是说,一旦您设置了环境,您就可以开…