美文网首页
Linux可执行文件动态编译和静态编译

Linux可执行文件动态编译和静态编译

作者: 搞计算机的跳跳爹 | 来源:发表于2022-09-03 17:28 被阅读0次

动态编译

通过源码编译的过程中执行./configure && make && make install,在默认情况下都是进行动态编译。

Linux的可执行文件在链接过程中可以通过使用动态链接,在可执行文件加载过程中链接第三方的SO库文件,这种使用动态链接的可执行文件编译过程称之为动态编译。

优点:

  1. 编译速度快;
  2. 编译出来的文件体积小;
    缺点:
  3. 如果系统缺少相关SO库就会无法执行。

静态编译

通过源码编译的过程中执行./configure时增加参数CFLAGS="-static",即./configure CFLAGS="-static" && make && make install,即可进行静态编译。

Linux可真行文件静态编译会在链接过程中链接所有用到的第三方.a库文件,哪怕只用到第三方库中其中几个函数,也会将整个第三方库链接过来。

优点:

  1. 执行过程中不需要依赖任何SO库。
    缺点:
  2. 编译速度慢;
  3. 编译出来的文件体积大;

相关文章

  • 静态编译和动态编译

    静态编译与动态编译的区别: 静态编译就是在编译时,把所有模块都编译进可执行文件里,当启动这个可执行文件时,所有模块...

  • 静态编译、动态编译、静态链接、动态链接

    1、静态编译: 静态编译就是编译器在编译可执行文件时,将可执行文件需要调用的部分从对于动态库中提取出来,链接到可执...

  • 交叉编译go文件

    Linux 编译为 linux 可执行文件 编译为 windows 可执行文件 编译为 mac 可执行文件 Win...

  • iOS的静态库和动态库

    一、静态库和动态库的区别 库:是资源文件和代码编译的一个集合 静态库: 静态库是在编译时,完整的拷贝至可执行文件中...

  • note_4.1_Linux目录结构与根文件系统

    Linux文件系统 Linux:glibc程序编译方式: 动态链接 静态编译 进程的类型:终端:硬件设备,关联一个...

  • iOS-静态库&动态库-Embed&Sign

    1、静态库&动态库 1.1 库介绍 程序的run流程:编译->链接->生成可执行文件->运行(加载可执行文件&动态...

  • Linux可执行文件动态编译和静态编译

    动态编译 通过源码编译的过程中执行./configure && make && make install,在默认情...

  • 改善Java程序建议17

    建议 17: 慎用动态编译。 关于动态编译的代码: 只要静态编译能做的事情,动态编译就能实现。 动态编译时,需要注...

  • 动态代理反射

    动态代理 分类AspectJ编译-静态编译-AspectJ编译编译器JDK动态代理-接口cglib动态代理-子类(...

  • Android 系统 overlay 机制重点小结

    静态 overlay 和动态 overlay 静态 overlay:又称为编译时 overlay,编译时资源就已经...

网友评论

      本文标题:Linux可执行文件动态编译和静态编译

      本文链接:https://www.haomeiwen.com/subject/pujmnrtx.html