Windows Portable Executables是否真的可以跨机器架构移植?如果是这样,它如何运作?如果不是那么“可移植可执行文件”是什么意思或可执行文件的哪个部分是可移植的?
谢谢,Siva Chandran
答案 0 :(得分:6)
可执行文件本身不是可移植的。 PE格式是“可移植的”,因为不同体系结构的可执行文件使用相同的PE格式,但PE文件中的可执行代码特定于单个处理器体系结构。
实际上,这意味着可以为不同的体系结构重用大量相同的编译器和链接器代码,并且用于检查可执行文件的工具(在某种程度上)可以用于“外部”可执行文件。
(我在这里谈论本机可执行文件 - .NET程序集也使用PE格式,可以真正移植。)
答案 1 :(得分:0)
来自维基百科: “术语”可移植“是指格式在操作系统软件架构的众多环境中的多功能性。”
答案 2 :(得分:0)
嗯,它是可移植的,因为格式可用于各种平台上的可执行文件(SkyOS在切换到ELF之前使用它)。它不能通过独立于平台的代码移植,或者如果您在一个操作系统上生成一个PE文件而在另一个操作系统上运行它。
答案 3 :(得分:0)
PE文件只是二进制应用程序数据的容器。 它们允许针对不同的CPU架构(甚至是非CPU软件架构,如.Net)。这就是他们被称为“便携式”的原因。
它们包含的每个二进制应用程序映像都适用于一个体系结构。