很多基本的问题都在我的脑海里。我需要清除它们。
语句 1:编译器将人类可读的代码转换为目标代码,然后通过链接器将这些代码转换为机器代码(可执行文件)。
我在这里吗?
在wikipedia上,它是这样写的
Object files are produced by an assembler, compiler, or other language
translator, and used as input to the linker.
问题 1:汇编程序将汇编语言代码 ( MOV A, B
ADD C
) 转换为机器代码。对于像 C++ 这样的高级语言,它是由上面的链接器生成的。所以汇编程序不在任何地方使用。那么它如何创建一个上面写的目标文件呢?
生成中间代码以使代码在不同的架构上运行。
问题 2: *.class(字节码)文件是由 java 编译器目标文件创建的吗?如果是,那么我们可以说运行它们的 JVM 是一种链接器(但是它不创建可执行文件)?
问题 3:当我们在 Turbo C++ 中编译 C++ 程序时,我们会得到 *.obj 文件,它们是目标文件。我们可以使用它们在其他架构中生成可执行文件吗?