`

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
分享到:
评论

相关推荐

    linux pthread libc静态库

    在Linux中,`pthread`和`libc`的静态库通常分别表示为`libpthread.a`和`libpthread.a`。`libpthread.a`包含了实现线程创建、同步、互斥等操作的函数,如`pthread_create`、`pthread_join`等。`libpthread.a`则包含了...

    linux下opencv2.4 静态库编译 lib .a

    在这种情况下,静态编译OpenCV库(生成`.a`文件)成为了一个可行的解决方案。OpenCV是一个强大的计算机视觉库,它包含了大量的图像处理和计算机视觉算法,广泛应用于图像分析、机器学习和人工智能领域。下面我们将...

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

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

    librabbitmq静态库.a以及.h

    在这个压缩包中,我们主要关注的是`librabbitmq.a`静态库文件和`amqp_tcp_socket.h`头文件。这两者是使用librabbitmq库进行C++开发的关键组件。 首先,`librabbitmq.a`是一个静态链接库文件。在C++编程中,库分为...

    静态库封装另一静态库

    1. **构建静态库B**: 首先,你需要确保静态库B已经正确创建。通常通过编译源代码并使用`ar`命令来完成。例如: ```bash gcc -c source_b1.c source_b2.c ar crs libB.a source_b1.o source_b2.o ``` 2. **编写...

    go开发中引用静态库.a文件的方法

    本篇文章将详细介绍如何在Go开发中引用静态库 `.a` 文件。 **一、生成静态库 `.a` 文件** 1. 创建一个新的Go项目,例如名为 `demo` 的项目,其目录结构如下: ``` demo/ demo.go main.go ``` 2. 在 `demo.go...

    ffmpeg-4.3.1 静态库 a文件 头文件.zip

    2. 在你的项目构建设置中,链接到对应的静态库(.a文件),确保编译器知道在哪里找到这些库。 3. 在源代码中包含所需的头文件,例如 `#include &lt;libavcodec/avcodec.h&gt;`,这样你就可以使用FFmpeg提供的功能。 4. ...

    opencv4.4.0交叉编译好的动态库和静态库.rar

    动态库(.so文件)与静态库(.a文件)是两种常见的库文件类型。动态库在程序运行时被加载到内存中,多个程序可以共享同一份库,节省内存资源,但需要目标系统已安装相应的库。静态库则在编译时会将库代码合并到可...

    介绍linux 上的c函数库,里面比较详细介绍了函数库文件,对于linux编程来说很好嵌入式.zip

    在Linux系统中,C函数库是开发者进行程序编写的重要资源,它们提供了丰富的功能,使得程序员可以高效地构建各种复杂的应用程序。这篇文档将深入探讨Linux上的C函数库,特别是其库文件的结构和使用方法,这对于Linux...

    libgsl 动态库 ,静态库 libgslcblas.lib libgsl.lib gsl.lib gsl.dll

    《深入理解libgsl:动态库与静态库的构建与应用》 libgsl,全称为GNU Scientific Library,是一款强大的开源数学库,广泛应用于科学计算和工程领域。它提供了丰富的数学函数,包括线性代数、概率统计、特殊函数、微...

    linux下用gcc生成静态库和动态库.doc

    3. 使用`ar`命令创建静态库,如`ar crv libmyhello.a hello.o`,`libmyhello.a`是静态库的名称,`crv`是参数,分别表示创建、替换和显示库内容。 4. 在使用静态库的程序中,通过`-l`选项指定库名,GCC会在链接时...

    go1.16.3.linux-amd64.tar.gz

    4. **静态链接**:默认情况下,Go编译的二进制文件是静态链接的,这意味着它们可以跨系统运行,而无需依赖外部库。 5. **C互操作**:CGO允许Go代码直接调用C库,增加了语言的灵活性。 6. **标准库**:Go的标准库非常...

    jdk-8u241-linux-x64.tar.gz.zip

    6. **JavaFX**:虽然不在JDK核心库中,但JavaFX是JDK 8的一个重要部分,用于构建桌面和Web的富客户端应用程序。 7. **JVM优化**:JDK 8在JVM级别也进行了优化,包括改进的垃圾收集器(如G1 GC),性能分析工具和...

    opencv3.4.0静态库.zip

    静态库通常用.lib(Windows)或.a(Unix-like系统)为扩展名。 3. 海思HIMI200: 海思HIMI200是一款高性能的多媒体处理器,常用于嵌入式系统和智能硬件,如摄像头、无人机等。它具有强大的图像处理能力,适合处理...

    jdk-8u181-linux-x64.tar.gz

    开发者可以利用其丰富的库和API来构建高效、稳定的应用程序。同时,由于其广泛的社区支持和成熟的生态系统,许多现有项目仍然依赖于JDK 8。 总之,"jdk-8u181-linux-x64.tar.gz"是一个至关重要的软件包,它提供了...

    linux下构建多目录下Makefile产生so动态库样例

    在Linux环境下,构建多目录下的Makefile以生成.so动态库是一项常见的任务,特别是在大型软件...这个过程不仅适用于.so动态库,也适用于.a静态库的构建。对于大型项目,这种组织方式能帮助保持代码的清晰性和可维护性。

    libiot_sdk静态库链接HAL出错解决方法.rar_Lib_iot_Client_libhal.a_libiot_sdk_

    本文将深入探讨在Linux环境下,针对海思平台进行阿里IoT Kit C SDK移植时遇到的`libiot_sdk.a`静态库链接`libhal.a`出错的问题及其解决方案。 首先,问题的核心在于`libiot_sdk`与`libhal`之间的依赖关系。`libiot_...

    海康SDKLinux版本CH-HCNetSDKV6.1.4.42_build20200527_linux64.zip

    1. **SDK核心库**:SDK的核心库文件(通常是动态链接库.so或静态链接库.a)提供了与海康设备进行通信的接口,开发者可以通过调用这些接口实现设备的控制和数据交换。 2. **编程指南**:这个SDK可能附带了一份编程...

    curl 全平台静态库,包括 android,ios ,win,mac,linux

    - Windows、Mac和Linux的静态库可能是`.lib`(Windows)或`.a`(Mac/Linux)文件。 3. **平台适配**: - 在Android上,使用静态库需要NDK,通过JNI接口将C/C++代码与Java代码交互。 - iOS开发中,静态库可以方便...

    miracl.a静态库文件

    在Linux环境中,通常会使用`make`命令来构建静态库。编译过程中可能需要指定一些选项,例如C编译器、优化级别等。 3. **链接miracl库**:在编写需要用到miracl库的程序时,需要包含对应的头文件,例如`#include ...

Global site tag (gtag.js) - Google Analytics