我目前正在尝试将C应用程序移植到 href="https://stackoom.com/question/f9p7/什么是-a和-so文件" rel="nofollow">AIX ,我感到很困惑。 什么是.a和.so文件以及它们在构建/运行应用程序时如何使用?


#1楼

维基百科是这个信息的一个不错的来源。

要了解静态库文件,例如.a,请阅读静态库

要了解像.so这样的共享库文件,请阅读Library_(计算)#Shared_libraries在此页面上, 文件命名部分中也有有用的信息。


#2楼

.a是静态库。 如果您使用存储在其中的代码,则从它们中获取并嵌入到您自己的二进制文件中。 在Visual Studio中,这些将是.lib文件。

.so是动态库。 如果您使用存储在其中的代码,则不会将其嵌入到您自己的二进制文件中。 相反它只是被引用,所以二进制文件将取决于它们,并且so文件中的代码在运行时添加/加载。 在Visual Studio / Windows中,这些将是.dll文件(包含链接信息的小.lib文件)。


#3楼

.a文件通常是静态链接(或更准确地存档)的库,以及
.so是动态链接库。

要做一个端口,你需要编译它们的源代码,或AIX机器上的等效文件。


#4楼

它们用于链接阶段。 .a文件是静态链接的,而.so文件是排序链接的,因此每当运行exe时都需要库。

您可以通过查看任何lib目录找到它们的存储位置... /usr/lib/lib具有大多数目录,并且还有LIBRARY_PATH环境变量。


#5楼

归档库(.a)是静态链接的,即在gcc中使用-c选项编译程序时。 因此,如果库中有任何更改,则需要再次编译和构建代码。

.so(共享对象)优于.a库的优点是它们在运行时链接,即在gcc中创建.o文件-o选项之后。 因此,如果.so文件中有任何更改,则无需重新编译主程序。 但请确保您的主程序使用ln命令链接到新的.so文件。

这将帮助您构建.so文件。 http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

希望这可以帮助。

什么是.a和.so文件?相关推荐

  1. MiniGUI开发指南

    MiniGUI 目录 MiniGUI 体系结构 概览 引言 POSIX线程 基于PThread的微客户/服务器结构 多线程通讯的关键数据结构--消息队列 面向对象技术在MiniGUI中的应用 未来考虑 ...

  2. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  3. /var/lib/docker/overlay2/xxxxx no such file or directory docker文件删除引发的问题

    记一次误删引发的服务雪崩 K8s node节点磁盘报警,报警后我找到服务中占用磁盘最多的地方,在overlay2目录下,对下面的文件进行了删除   删除后,有状态服务先出现了问题,服务无法启动.停止. ...

  4. Access to XMLHttpRequest at file from origin ‘null‘ has been blocked by CORS policy谷歌浏览器本地打开项目js文件报错

    Access to XMLHttpRequest at 'file:///xxxxx/PQ.BaseInfo.proto' from origin 'null' has been blocked by ...

  5. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  6. zip压缩多个文件,解压时不包含目录层级

    假设我们有个目录叫 dev,dev中有很多文件,我们想要将dev中的文件打包,名字可能叫dev.zip,但当我们解压的时候,不想要解压生成一个dev目录,想要直接解压在当前目录,这样如何压缩呢? # ...

  7. Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多

    Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...

  8. springboot设置文件上传大小(tomcat默认1M)

    application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...

  9. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

  10. IDEA设置单个文件、单个包、单个项目的编码格式

    IDEA设置单个文件.单个包.单个项目的编码格式 File-> Settings-> File Enclodings 选择编码格式,确定即可. 注意:此处的编码格式设定以后,该包已经存在的 ...

最新文章

  1. python升级知识整理 第五节:文件整理
  2. “智源论坛Live”报名 | 清华大学岂凡超:义原知识库的应用和扩充
  3. 大快搜索城市运河大数据政务管理平台案例解读
  4. wordpress数据库表详解
  5. python gridsearch_python gridsearch中的内存错误
  6. 骏飞H5幸运刮刮乐源码
  7. 如何修改 SAP 登录界面的文字(事务码SE61)
  8. eclipse中简便的aptana安装方法
  9. 推荐常用的小程序Ui框架
  10. 网站爬取工具_Python项目:结合Django和爬虫开发小说网站,免安装,无广告
  11. 虚幻四中怎么保持导入模型坐标_[CG分享]|虚幻引擎5 技术解析
  12. 学术资源不定期分享-【钱学森《工程控制论》英文原版】
  13. 教你用Python实现全自动刷网课
  14. 2020.8.2- 参加华数之星数学比赛 银奖(二等奖)
  15. veeam备份oracle数据库,实战veeam BR 10备份Oracle RAC 19c PDB容器数据库
  16. 解决退格键在MinGW的vim中不起作用的问题
  17. 9个妙招教你玩转微信
  18. R语言使用lightgbm包构建多分类的LightGBM模型、caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)
  19. vanilla是什么意思
  20. 怎么计算机械加工产能,生产计划人员如何计算一个工厂生产产能?..doc

热门文章

  1. Windos 解决Flutter 报错
  2. Android 画虚线 DashPathEffect 使用详解
  3. 算法------对称二叉树
  4. 转: Meshlab简介
  5. Android socket 编程 实现消息推送
  6. LinkedHashMap源码分析
  7. 自定义Activity的启动关闭动画
  8. (0059)iOS开发之添加自定义字体库并设置文本字体
  9. webpage not available是什么意思_MySQL很想啊,为什么还要有noSQL?
  10. 静态切割窗体+关联对话框