所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。.so文件是共享库文件(动态链接)。动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息),仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的.so之间建立链接关系。
.a文件是多个.o文件的组合。.o文件就是对象文件,里面包含的内容就是01这样的机器可执行的指令,当程序要执行时还需要进行链接(link).链接就是把多个.o文件链成一个可执行文件。
可以参考:https://www.cnblogs.com/luntai/p/5291354.html
事情源于一次gdb调试。因为要gdb 3rdpary库的源码,发现编译的服务的debug版本并不能查看到对应文件的符号,后来发现是 这个3rdpary库中的文件编译成了.a的静态库,然而这个的静态库并不是 release版本,并没有 -g的选项。于是先编译了debug版的静态库,然后再编译debug的服务。gdb即可

转载于:https://www.cnblogs.com/simplepaul/p/10400252.html

.a 文件 和 so 文件相关推荐

  1. java中实现选择文件_Java 实现文件选择对话框及功能

    时间:2018-10-02 概述:文件选择器 Java实现文件选择器,就是大家熟悉的打开文件.选择文件的对话框,本例子分为两部分来进行,一个部分是选择器对话框构建部分,另一部分是文件过滤部分,用于过滤 ...

  2. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...

  3. shell与 .sh文件与 .bash文件

    一.shell和bash shell是LInux系统下的解释器,类似于windows下的cmd.shell对用户输入到窗口中的命令行进行解释,输入到内核. bash同样是Linux系统下的解释器,是b ...

  4. python批量pdf转word,python批量实现Word文件转换为PDF文件

    本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...

  5. python读取文件r_python read文件的r和rb的区别

    r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据. 'w':表示要向文件写入数据,并截断以前的内容 'a':表示要向文件 ...

  6. Linux找头文件规则,linux 头文件、库文件查找顺序

    linux 头文件.库文件查找顺序 默认分类 2009-11-14 01:24:28 阅读126 评论0 字号:大中小 linux 头文件.库文件查找顺序 2009-11-03 12:36 Inclu ...

  7. python npz文件_numpy的文件存储 .npy .npz 文件

    1)Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展 ...

  8. php 加载一个文件路径_PHP文件加载过程

    1.文件的路径问题 我们之前也用过一些有关文件路径问题的知识,比如: .... php中,有3种路径 相对路径: 有两个特定符号(特定路径)来决定的路径形式: ./ :表示当前目录,也就是当前网页所在 ...

  9. MATLAB可以打开gms文件吗,GMS文件扩展名 - 什么是.gms以及如何打开? - ReviverSoft...

    你在这里因为你有,有一个文件扩展名结尾的​​文件 .gms. 文件与文件扩展名 .gms 只能通过特定的应用程序推出.这有可能是 .gms 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观 ...

  10. c++:文件操作1 文件的打开

    在程序中,要使用一个文件,先要打开文件后才能读写,读写完后要关闭.创建一个新文件也要先执行打开(open)操作,然后才能往文件中写入数据.C++ 文件流类有相应的成员函数来实现打开.读.写.关闭等文件 ...

最新文章

  1. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出...
  2. vue 自定义组件 v-model双向绑定、 父子组件同步通信
  3. 【网络安全】如何利用工具发现内部或外部网络攻击面
  4. java加载一个来自项目之外的java文件,执行其main方法的一种实现方式
  5. 网站搭建从零开始(五) WordPress的安装
  6. Eclipse如何不使用alt+/来实现自动提示
  7. 银联支付h5返回商户的地址是post的吗?_php实现银联商务公众号+服务窗支付
  8. VMware下Linux配置局域网和外网访问(CentOS)
  9. abp框架使用ip访问
  10. docker部署svnadmin进行权限管理
  11. 基于MaixPy的摄像头模块---MicroPython图像处理
  12. Fiddler:显示请求花费的时间
  13. 二层交换机 三层交换机 四层交换机的区别
  14. 元气骑士双人异地公网联机工具(仅支持双人、JAVA实现)
  15. Unity初学者Shader Graph教程
  16. CAN详解--CAN与com口介绍
  17. 笔记本连接双显示屏相关问题
  18. 杂谈 | 从刘慈欣科幻小说到元宇宙
  19. 计算机counta函数怎么用,Excel函数公式:Counta函数的多功能应用~
  20. 手把手带你实现第三方应用登录

热门文章

  1. 鸿蒙系统画饼,任正非说在三年内华为鸿蒙系统即可媲美苹果!真的不是“画饼”?...
  2. java如何保证redis设置过期时间的原子性_redis专题系列22 -- 如何优雅的基于redis实现分布式锁
  3. matlab常用代码总结
  4. python如何播放视频_如何用python做一个视频搜索+播放器
  5. jQuery 选择器汇总-思维导图-选择器
  6. vscode里好用的html插件_知乎口碑最好的六大PPT插件分享!用好插件,效率倍增...
  7. 排序 np_P问题、NP问题、NP完全问题和NP难问题理解
  8. java bat 运行 jar文件_运行bat文件启动java的jar且不弹出DOS窗口,后台运行java的jar包...
  9. mysql automatic_sp_privileges_mysql variable automatic_sp_privileges 疑问
  10. python设计模式-观察者