ELF load command alignment not page-aligned 错误

当某个动态库的 LOAD 段所需的对齐大小与当前系统的内存页大小不兼容时,那么引入该动态库的程序在编译时将会出现 ELF load command alignment not page-aligned 错误。

要解决该问题,我们需要重新编译出现问题的动态库,并在编译时向 gcc 传递参数 -Wl, -z, max-page-size=XXX 以使其与系统的内存页大小相兼容,参数值为当前系统的内存页大小

参考:

注: 本文一些细节可能并不准确,因为尽管我费劲心思,最后仍然无法在官方文档中找到对 max-page-size 参数的更多解释。


  1. 我们可以通过命令 readelf -l ***.so 来查看库的 LOAD 段所需的对齐大小 ↩︎

  2. 对齐大小小于系统当前内存页大小则不兼容,对齐大小是系统当前内存页大小的倍数则兼容 ↩︎

  3. 或是系统所支持的更大大小 ↩︎

posted @   邓加领  阅读(4959)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示