我有一个以 64 位编译并与之对齐的库。
问题是这个库也应该与 32 位进程一起工作(现在它将只与 64 位进程链接)并且也应该与 32 位对齐。
有没有办法让它同时与 32 位和 64 位对齐?
我有一个以 64 位编译并与之对齐的库。
问题是这个库也应该与 32 位进程一起工作(现在它将只与 64 位进程链接)并且也应该与 32 位对齐。
有没有办法让它同时与 32 位和 64 位对齐?
基本上没有,不是没有重新编译。
以 64 位编译的 DLL 使用仅在 64 位模式下可用的 CPU 功能(额外指令/额外寄存器/...),这意味着处于 32 位模式的 CPU 无法执行代码。
有一种东西叫FatELF ……但不知道走了多远。基本上在一个可执行文件/库中,您放置了多个版本的程序(一个用于 32 位,一个用于 64 位,一个用于 Arm,......)(称为“技术” Fat binary
)
可悲的是,我认为它已经死了......他们存储库的最后一次提交是Thu, 22 Nov 2012 12:39:53 -0500 ...