当我在项目中构建Java对象类时,将以.class扩展名创建构建文件,并且人类不可读;快速构建文件呢?
示例:
car.java --> build --> car.class
构建后会是什么?
car.swift --> build --> ?
答案 0 :(得分:3)
Swift与Java的编译过程有所不同,因此不一定存在直接等效的过程。
随着构建的进行,尽管每个Swift文件都将被编译成一个'Object'文件,并以.o
扩展名结尾。然后,一旦它们全部构建,它们就被链接在一起以形成二进制文件。如果取消选择iOS应用程序的IPA文件,您将看不到单个.o
文件,就像在Java jar文件中看到.class
文件一样。
答案 1 :(得分:3)
我知道的一件事是,Swift就像Objective-C一样使用LLVM。
在这里,针对Swift(来源:Swift.org)
我希望这会有所帮助!
答案 2 :(得分:0)
*.swift
-> *.o
(Mach-O目标文件)。
例如,您有一个myLibrary.a-static library (*.a)
。您可以使用nm
命令显示名称列表(符号表)。
nm myLibrary.a
因此,您将看到*.o
文件的列表,其中包含方法,变量名称等。
答案 3 :(得分:0)
在iOS世界中,每个源文件-.m
,.h
,.swift
都被编译成CPU可以理解的可执行字节代码。这些文件也称为带有元信息的Mach-O
(马赫对象)文件。
`*.swift` -> `*.o` (Mach-O object file).
例如,您创建了一个静态库myLibrary.a
。您可以使用nm
命令显示名称列表(符号表)。
nm path/myLibrary.a
因此,您将看到*.o
文件的列表,其中包含方法,变量名称等。