`
shake863
  • 浏览: 664707 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux下编程学习--- 静态库和动态库的编译

阅读更多

 

学习linux下c很长一段对动态库和静态库的编译和使用总是透着雾水,今天看了一本书《Linux程序设计第2版》,总算弄清楚了,所谓库文件是预先编译好的函数集合,函数库一般分为静态和共享两种格式。

静态库:静态库也叫档案(archive),他们的名字都按管理 *.a 命名,其实说白了,所谓的静态库也就是被归档的
          二进制目标代码文件,当要使用时,就用include 来包含该库的头文件即可,当然如果不是标准库,要指名路径,用”-l“ 指名,自己建立静态库,用归档命令”ar“ 即可,例如”ar crv  test.a  test1.o test2.o“

动态库:动态库也叫共享库,系统存放的位置和静态库是一个地方,不通的是后缀名不一样,以”.so“结尾,
               如果一个程序使用动态库,则该程序本身不包含调用的函数代码,只包含调用的线索,只是在程序需要调
              用时才去调用动态库。这也就是所谓”动态“的含义吧。
  

分享到:
评论

相关推荐

    boost库1.68版本Linux下编译的动态库和静态库

    这将编译动态库(`.so`)和静态库(`.a`),并安装到指定的路径。 5. **测试与验证**:编译完成后,为了确保库的可用性,可以运行Boost的测试套件,用`bjam test`执行所有测试案例。如果所有测试都通过,那么说明库...

    Linux编译动态库和静态库

    本篇将详细介绍在Linux环境下如何编译动态库和静态库。 首先,我们来看动态库的生成过程。动态库的编译通常分为两个步骤: 1. 编译源文件为`.o`对象文件: 使用`cpp`或`gcc`命令,加上`-c`选项来编译源代码,并...

    VS2017 64位 VTK-9.0.1编译生成库 静态库 动态库 lib文件和dll文件

    在本文中,我们将详细讨论如何在64位的Visual Studio 2017环境下编译和生成VTK-9.0.1版本的静态库和动态库,以及涉及到的相关知识。 首先,为了编译VTK,你需要确保已经安装了Visual Studio 2017,并且包含了C++...

    linux系统编程-静态库-动态库-gdb调试.zip

    在Linux系统编程中,理解和掌握静态库和动态库的制作以及GDB调试是至关重要的技能。本资料包包含了关于这些主题的详细教程,通过C语言实现来帮助学习者深入理解。 首先,我们来讨论静态库。静态库是将多个目标文件...

    openssl-1.0.2p 编译好的静态库动态库头文件.rar

    5. **静态库和动态库**: - 静态库(.lib 文件)在编译时会被合并到可执行文件中,形成一个独立的程序,无需运行时依赖外部库。 - 动态库(.dll 文件)在运行时被加载,多个程序可以共享同一动态库,节省内存。但...

    linux 编程教程 -- linux下编程入门

    - 动态库与静态库:理解动态链接与静态链接的区别。 4. **进程与线程管理** - 进程:学习如何创建、控制和通信(通过信号、管道、套接字等)进程。 - 线程:理解和使用多线程编程,了解线程同步机制,如互斥锁、...

    CentOS7环境下编译的libwebsockets动态库和静态库

    本篇将详细解析如何在CentOS 7环境下编译libwebsockets动态库和静态库,并探讨其在实际应用中的价值。 首先,让我们了解一下libwebsockets库。libwebsockets是一个C语言编写的WebSocket库,它支持HTTP和WebSocket...

    CentOS7环境下编译的openssl 3.0动态库和静态库

    本资源提供了在CentOS7环境下编译的OpenSSL 3.0版本的动态库和静态库,这将对需要在该操作系统上进行安全编程或系统集成的开发者非常有帮助。 首先,让我们深入理解OpenSSL 3.0。OpenSSL 3.0是一个重大的版本更新,...

    在linux下面生成动态库静态库

    ### 在Linux下生成动态库与静态库的知识点详解 ...通过上述步骤,我们可以看到在Linux下生成和使用动态库及静态库的具体方法。这对于开发跨平台应用、优化程序性能以及进行模块化设计等方面都具有重要意义。

    linux pthread libc静态库

    此外,由于静态库的特性,如果`pthread`或`libc`有安全更新,使用静态编译的程序不会自动获取这些更新,因此在某些情况下,动态链接库可能是更好的选择。 总之,`pthread`和`libc`静态库是Linux开发中的重要组件,...

    Linux静态库和动态库

    **Linux库的分类**:Linux下的库主要分为两大类——静态库与动态库,它们的核心区别在于代码的加载时机。静态库在编译阶段即与目标程序结合,而动态库则是在程序运行时动态加载。 #### 静态库与动态库的生成与使用 ...

    linux静态库与动态库

    在Linux操作系统中,库文件是...总之,理解Linux下的静态库和动态库以及如何生成和使用它们对于进行系统级编程和软件开发至关重要。选择静态库或动态库取决于需求,如资源限制、程序部署的便捷性以及库更新的需求等。

    arm-linux-androideabi-4.9.7z

    4. **链接**:链接器ld将多个目标文件合并,并解决函数和数据的引用,生成最终的可执行文件或动态/静态库。 五、Android NDK与JNI Android NDK(Native Development Kit)是Google提供的一套用于开发原生C/C++代码...

    头歌Linux系统编程之c编程入门

    3. **Linux编译C程序**:讲解如何在Linux下编译C程序,包括源代码的编译、链接以及静态库和动态库的使用。理解编译命令如`gcc`的不同选项,如 `-c`用于编译成目标文件,`-o`指定输出文件名。 4. **Linux时间编程**...

    Opencv 编译动态库和静态库方法

    本文将详细讲解如何编译OpenCV库,包括动态库和静态库的构建方法。 首先,确保你的系统已经安装了编译OpenCV所需的依赖项。在Linux环境下,可以通过`sudo apt-get install`命令安装以下组件: - `git`: 版本控制...

    HP-Socket编译-Linux

    执行这个shell脚本将帮助你安装OpenSSL库,包括生成必要的头文件和动态/静态库。 在编译HP-Socket之前,你需要确保所有依赖项都已正确安装。这通常包括设置环境变量,比如将库的路径添加到LD_LIBRARY_PATH,以及...

    需链接动态库静态库,且需先编译库的makefile

    在本示例中,`make3`可能包含一个更复杂的`makefile`,它不仅编译静态库`libmystaticlib.a`和动态库,还处理它们的依赖文件。`makefile`的注释会指导用户理解每个部分的作用,以及如何根据自己的需求进行修改。 ...

    CentOS7下编译的zeromq 4.3.1版本静态和动态库

    总的来说,编译和使用zeromq 4.3.1版本的静态和动态库涉及到了C++编程、Linux系统操作、开源软件构建、依赖库管理、测试验证等多个方面的知识,这些都是成为一名合格的IT专业人士不可或缺的技能。

    qt5.15.9-static 静态编译库,已经编译完毕,直接安装即可

    此外,由于静态库文件较大,所以针对嵌入式设备或资源有限的系统,可能需要考虑动态链接库或者裁剪不必要的模块以减小体积。 总之,QT5.15.9静态编译库是一个强大且方便的工具,它为开发者提供了完整的开发环境,...

    QT5编译freetype生成静态以及动态库源码,Linux及Windows都可编译

    4. **配置编译选项**:在项目设置中,指定编译目标为静态库(`libfreetype.a`)和动态库(`libfreetype.dll`)。对于Linux,这通常在.pro文件中通过`QMAKE_LFLAGS`和`QMAKE_CXXFLAGS`设置;对于Windows,可以在项目属性...

Global site tag (gtag.js) - Google Analytics