我目前正在尝试将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. android:versionCode 跟 android:versionName
  2. python各个解释器的用途-python解释器有哪些?
  3. 关于异步IO与同步IO的写操作区别
  4. origin安装包_作图技巧|研究生需要会的20个Origin操作,作图又快又好看(二)...
  5. python代码设计测试用例_Python单元测试与测试用例简析
  6. 0-安装Vagrant和使用
  7. Duplicate entry ‘‘ for key ‘***‘
  8. 尊贵的iPhone 11用户们,苹果喊你们换显示屏模块了……
  9. 手把手教你如何罗列提纲,避开这3个坑,提升写作效率50%
  10. Lua中local变量和非local变量的区别
  11. input框,需要隐式显示的时候,不让它自动填充的办法
  12. 如何删除Linux一个目录下部分类型之外的所有文件的三种方法
  13. 强大好看的dz论坛社区源码手机端
  14. WPF的网易云音乐页面
  15. macbook pro下载速度慢的解决方法
  16. 树及树的算法(4) —— 红黑树
  17. Magento后台添加商品属性集属性集详细教程
  18. RGB和CIELAB颜色空间转换及偏色检测
  19. 康耐视VisionPro
  20. EditPlus中文版-具有 FTP、FTPS 和 sftp 功能的文本编辑器

热门文章

  1. string转换成CString
  2. Android 中的GC资料网站
  3. 【Java源码分析】LinkedHashSet和HashSet源码分析
  4. oracle aul 索引,ORACLE恢復神器之ODU/AUL/DUL
  5. 软件测试用例优秀例子_最全软件测试面试题汇总
  6. 涉密电脑痕迹深度清理_Mac空间不足的情况下,该怎么清理呢?
  7. 从源码的角度分析MapReduce的map-input流程
  8. (0029) iOS 开发之API HTTP 请求调试网站
  9. (0002) iOS 开发之开发者iOS 10 正式版体验报告
  10. python 函数(二)