c – SYSV与Linux / GNU ELF格式
问题是在以下问题的背景下:Why are libraries not found,even though they are clearly on the -L path?.我的库和我的目标文件似乎有不同的ELF格式,这可能导致链接器无法“找到”库. 现在,这导致了几个问题: >似乎我的编译器通常会生成SYSV ELF文件. (检查文件).但是,对于该特定的C源,它会生成Linux / GNU ELF目标文件.我想知道为什么,所以我将该源减少为一个空的main方法 – 然后我突然得到一个SYSV对象文件. C源文件中的内容可以导致编译器切换ELF格式? 我正在使用Cray g(GCC)5.3.0 20151204. 最佳答案 关于问题1:答案之一似乎是STT_GNU_IFUNC类型的函数将导致编译器/链接器将相应目标文件的ELF文件格式从SYSV切换到GNU / Linux. 但是,我仍然无法找到如何识别具有STT_GNU_IFUNC类型的目标文件中的函数.使用objdump查看GNU / Linux的目标文件,readelf和nm仍然不显示STT_GNU_IFUNC类型的单个函数. 有关STT_GNU_IFUNC的更多信息可以在https://www.airs.com/blog/archives/403和以下相关问题中找到:How do I compile on linux to share with all distributions? (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – Eclipse不会启动,因为`reload maven项目
- linux – 如何更改当前光标位置指示器的颜色?
- 如何将Linux密钥从/ dev / input / event *转换为
- NMAP - A Stealth Port Scanner--reference
- LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装
- linux – Microsoft Project开源替代品
- linux-kernel – 编译Linux内核错误xt_CONNMARK.
- linux – cronjob计时是从它创建的那一刻开始还是
- linux – 如何跟踪EC2实例或弹性IP上的公共带宽使
- linux – 新节点配置中缺少“通过Java Web Start