linux生成文件中.so 文件和.out文件的区别

.so是动态链接库,.out是可执行文件。这我知道。。各位大虾,我想知道,.so里具体是什么?比方说是函数?是函数型,和各个.C的关系呢?然后.out里面是放的什么,难道... .so是动态链接库,.out是可执行文件。这我知道。。

各位大虾,我想知道,.so里具体是什么?比方说是函数?是函数型,和各个.C的关系呢?然后.out里面是放的什么,难道是放的链接到.SO的路径放的链接哪个.SO。。还是放的是函数,?

求解惑。百度搜不到啊。
展开
 我来答
herrywood
2012-12-06 · TA获得超过870个赞
知道小有建树答主
回答量:523
采纳率:66%
帮助的人:480万
展开全部
.so是二进制格式的链接库文件,包含链接库源文件(.c)中的各函数实现、调试信息等。
.out一般也是由gcc编译生成的二进制格式文件,但有可能是执行程序也可能是链接库文件,因为在linux中扩展名除了一些特殊的约定,一般情况下是无意义的。
执行文件也分动态链接还是静态链接。大多数情况都是动态链接,里面存放源文件(.c)中编译后的二进制代码及所调用函数库的入口参数,静态链接则是all-in-one,就是将所用到的非标准库都打包到执行文件中,所以体积都较大。
追问
有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?
追答
是的。.SO中存放的是函数的声明和实现内容
匿名用户
2012-12-06
展开全部
.so和.out里面应该都是二进制的执行指令。但文件格式,就是里面的内容布局是不同的,这个可以在网上找到资料的。
.so文件最主要的肯定是每个函数的声明和实现代码。
.out文件一般都会分成数据段,代码段,堆栈段的。然后就是一条接一条的指令执行,学过汇编应该知道怎么回事。
追问
有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式