Compiler construction 编译器-平台差异
如果编译器将特定处理器(比如intel)的源代码转换为机器代码(二进制),那么为什么我们需要一个linux编译器和一个不同的windows编译器,因为这两个操作系统都有相同的处理器?为什么编译器依赖于平台 为什么我不能在linux和widows上运行二进制编译文件(假设我在linux中使用Compiler construction 编译器-平台差异,compiler-construction,compilation,operating-system,Compiler Construction,Compilation,Operating System,如果编译器将特定处理器(比如intel)的源代码转换为机器代码(二进制),那么为什么我们需要一个linux编译器和一个不同的windows编译器,因为这两个操作系统都有相同的处理器?为什么编译器依赖于平台 为什么我不能在linux和widows上运行二进制编译文件(假设我在linux中使用gcc-Wall-o file file.c)而不重新编译 谢谢想象一下你有你的可执行文件。操作系统必须将其加载到内存中。即使这样也不便于携带。加载什么、代码在哪里、它将从其他DLL导入哪些函数等等都写在可执行
gcc-Wall-o file file.c
)而不重新编译
谢谢想象一下你有你的可执行文件。操作系统必须将其加载到内存中。即使这样也不便于携带。加载什么、代码在哪里、它将从其他DLL导入哪些函数等等都写在可执行文件中,每个操作系统都有自己的格式。请参阅以下链接:
- (Windows PE文件格式)
- (Linux ELF文件格式)
即使,再想象一下(Windows实现了a),它有一个调用的公共函数,但由于不同的原因,他不知道如何调用它。想象一下,您有一个可执行文件。操作系统必须将其加载到内存中。即使这样也不便于携带。加载什么、代码在哪里、它将从其他DLL导入哪些函数等等都写在可执行文件中,每个操作系统都有自己的格式。请参阅以下链接:
- (Windows PE文件格式)
- (Linux ELF文件格式)