2
假設x86 64和linux平臺。64位平臺上的ELF對象文件大小限制是什麼?
如果您查看ELF標頭,偏移量都是64位。
因此,通過重定位R_X86_64_64可以輕鬆創建大於4G的目標文件。這意味着一個靜態的.o文件和可執行文件可以像64位一樣大。
但是,對於像gcc這樣的共享庫,我們只有R_X86_64_PLT32重定位。這意味着創建大於4GB的共享庫是不可能的,對吧?
因此,如果我想構建一個巨大的程序,其中一個.o文件足夠大(> 4GB),唯一的選擇是靜態鏈接?
歡迎任何評論。
謝謝, LIMI
非常感謝。 我讀了ABI,注意到gcc開始從4.3開始支持它。 我正在嘗試。 – limi 2010-10-22 00:02:41