`

linux下构建 静态函数库(.a)

阅读更多
一.静态库构建
1.定义两个函数文件
say.c
#include<stdio.h>
void say(char *arg)
{
   printf("say:%s\n",arg);
}

write.c
#include<stdio.h>
void write(char *arg)
{
   printf("write:%s\n",arg);
}

2.编译这两个文件
gcc -c say.c write.c
产生say.o write.o
-c作用是阻止编译器创建一个完整的程序,因为没有Main函数

3.打包归档
ar crv libmy.a say.o write.o
产生libmy.a归档文件

4.使用归档文件
  编写库的头文件
  libmy.h
  void write(char *);
  void say(char *);

  使用mainlib.c
  #include<stdlib.h>
  #include"libmy.h"
  int main()
  {
    say("hello");
    write("world");
  }
  gcc -c  mainlib.c
  gcc -o mainlib mainlib.o libmy.a
  运行
  ./mainlib
分享到:
评论

相关推荐

    一文教你如何构建静态链接库.md

    话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习...

    linux网路编程 中文 23M 版

    8生成和使用静态链接库.......................................... 25 2 . 2 . 9生成动态链接库.................................................26 2.2.10动态加载库............................................

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    Linux下动态连接.doc

    -&gt; 在构建时与静态库(lib*.a)静态链接,并且将库代码包含在该应用程序的可执行文件里 -&gt; 在运行时与共享库(lib*.so)动态链接,通过动态链接装入器,将动态库映射进应用程序 的可执行内存中。在启动应用程序之前,...

    为Linux应用程序编写DLL程序函数

    Linux 中的应用程序以以下两种方式之一链接到外部函数:要么在构建时与静态库( lib*.a)静态地链接,并且将库代码包含在该应用程序的可执行文件里;要么在运行时与共享库( lib*.so)动态地链接。通过动态链接装入...

    LuaBind 源码 (Lua增强库)

    LuaBind 是一个帮助你绑定C++和Lua的库.她有能力暴露 C++ 函数和类到 Lua . 她也有 能力支持函数式的定义一个Lua类,而且使之继承自C++或者Lua. Lua类可以覆写从 C++ 基类 继承来的虚函数. 她的目标平台是Lua 5.0 ,不...

    C/C++ 项目构建 CMake 构建工程使用小结 CMake 常用函数介绍

    大型的C/C++项目经常包含较多的文件,文件目录可能较为复杂,或者需要生成一些动态或静态库方便其他项目使用,我们尽量简化代码,使用满足一般项目构建的函数,展示CMake用于项目构建所需流程及操作。

    Apache JMeter (apache-jmeter-5.4.3.zip)

    Apache JMeter (apache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache ...

    易语言5.1 破解版

    “在库中的对应命令名”请务必准确填写静态库中公开导出的符号名称(C函数(cdecl)编译后,符号名称通常是在函数名称前加下划线(_));“在库中的对应命令名”以@开头表示以cdecl方式调用,否则表示以默认的stdcall...

    libsigcplusplus:libsigc ++为标准C ++实现了类型安全的回调系统。 它允许您定义信号并将这些信号连接到任何回调函数,无论是全局函数还是成员函数,无论它是静态的还是虚拟的

    它允许您定义信号并将这些信号连接到任何回调函数,无论是全局函数还是成员函数,无论它是静态的还是虚拟的。 gtkmm使用libsigc ++来包装GTK +信号系统。 它不依赖于GTK +或gtkmm。 请参阅执照库和组件的分发在...

    新版Android开发教程.rar

    ----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

    网络架构师148讲视频课程

    │ 第30节:把应用部署到Linux服务器上.avi │ 第31节:Nginx简介、安装和基本运行.avi │ 第32节:Nginx的进程结构、基本配置.avi │ 第33节:Nginx常用核心模块指令.avi │ 第34节:Nginx的Http模块部分的指令.avi...

    毕业设计基于Golang开发的BBS论坛系统源码+项目使用说明.zip

    ├── build.sh (构建脚本,构建可在linux上运行的二进制文件) ├── config (配置包) ├── logs (日志包) ├── main.go (main函数) ├── middleware (中间件) ├── model (结构体) ├── nbbs.service ...

    从不:从不:静态类型化,可嵌入的函数式编程语言

    从不-函数式编程语言 一种简单的函数式编程语言。...先决条件从不要求构建基本Linux安装。 需要以下工具和库: 海湾合作委员会glibc 野牛/弯曲libmath,libdl和libffi正在安装从不可以按以下步骤安装:

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

     ×跨平台:Windows, Unix, Linux, Mac OS X, Pocket PC, Palm OS, Symbian等。  ×支持序列化程序中的本地化C/C++数据结构。  ×可以使用输入和输出缓冲区来提高效率,但是不用完全消息缓冲来确定HTTP消息的长度...

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    上面,我们得到了Osip的解析器开发库,下面再编译完整的Osip协议栈开发库,同样照上述方法,分别创建动态链接库工程和静态链接库工程,只是要拷的文件换成src下的osip目录下文件和include下的osip目录,...

    移动应用开发技术实验指导书

    * 系统 C 库 - 一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。 * 媒体库 - 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件...

    wireshark源码

    - Makefile.am - UNIX/Linux的makefile模板 - Makefile.common - 包含了插件文件的名称 - Makefile.nmake - 包含了针对Windows平台的Wireshark插件makefile - moduleinfo.h - 包含了插件版本信息 - moduleinfo.nmake...

    Apache JMeter (apache-jmeter-5.4.3.tgz)

    Apache JMeter (apache-jmeter-5.4.3.tgz)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache ...

Global site tag (gtag.js) - Google Analytics