【发布时间】:2016-09-09 22:25:23
【问题描述】:
我知道在 swift 中可以使用 swift 模块中的函数上的@_silgen_name attr 与 c 进行互操作。有没有办法用程序集文件中定义的符号来做到这一点?我想使用 Swift 进行系统调用。这就是我问的原因。
【问题讨论】:
-
编译后的目标文件不知道它是用 C 编译的,还是用汇编语言汇编的。
-
@PaulGriffiths 编译器在编译 swift 模块时如何知道 asm 文件中的符号在哪里?
-
它知道符号在 C 源文件中的位置的方式完全相同 - 它在目标文件的符号表中查找它。
-
@PaulGriffiths 但我没有告诉编译器链接它。有什么特殊的标志需要我传入吗?
-
This question 可能会有所帮助。