linux生成文件中.so 文件和.out文件的区别
答案:2 悬赏:10
解决时间 2021-01-25 13:24
- 提问者网友:却不属于对方
- 2021-01-25 03:32
linux生成文件中.so 文件和.out文件的区别
最佳答案
- 二级知识专家网友:怀裏藏嬌
- 2021-01-25 04:38
.so是二进制格式的链接库文件,包含链接库源文件(.c)中的各函数实现、调试信息等。
.out一般也是由gcc编译生成的二进制格式文件,但有可能是执行程序也可能是链接库文件,因为在linux中扩展名除了一些特殊的约定,一般情况下是无意义的。
执行文件也分动态链接还是静态链接。大多数情况都是动态链接,里面存放源文件(.c)中编译后的二进制代码及所调用函数库的入口参数,静态链接则是all-in-one,就是将所用到的非标准库都打包到执行文件中,所以体积都较大。追问有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?追答是的。.SO中存放的是函数的声明和实现内容
.out一般也是由gcc编译生成的二进制格式文件,但有可能是执行程序也可能是链接库文件,因为在linux中扩展名除了一些特殊的约定,一般情况下是无意义的。
执行文件也分动态链接还是静态链接。大多数情况都是动态链接,里面存放源文件(.c)中编译后的二进制代码及所调用函数库的入口参数,静态链接则是all-in-one,就是将所用到的非标准库都打包到执行文件中,所以体积都较大。追问有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?追答是的。.SO中存放的是函数的声明和实现内容
全部回答
- 1楼网友:酒醒三更
- 2021-01-25 04:50
.so和.out里面应该都是二进制的执行指令。但文件格式,就是里面的内容布局是不同的,这个可以在网上找到资料的。
.so文件最主要的肯定是每个函数的声明和实现代码。
.out文件一般都会分成数据段,代码段,堆栈段的。然后就是一条接一条的指令执行,学过汇编应该知道怎么回事。追问有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?
.so文件最主要的肯定是每个函数的声明和实现代码。
.out文件一般都会分成数据段,代码段,堆栈段的。然后就是一条接一条的指令执行,学过汇编应该知道怎么回事。追问有时候人家给我一个.SO 里面可以搜的到 我需要用到的那个函数,然后我自己写的程序里 会用到那个函数嘛,可以说是接口。 这样 我可以理解为 .SO里放了 那个函数的实体么?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯