到目前为止,我发现共享对象文件(.so
)是一种提供编译程序接口的方法,供其他程序使用,通常是Linux操作系统。诸如Rust,Julia和C之类的多种语言可以编译为.so
文件。此外,各种解释语言都可以与.so
文件(例如Python)进行交互。
但是,.so
和C之间的重叠让我感到困惑。我发现的大多数资源都讨论了在C上下文中与.so
文件的接口。例如,在Python中,存在各种库来翻译Python对象以使其与C类型兼容,例如Cython。这是否意味着.so
文件提供的所有接口都必须基于某些C类型?可能的接口集及其类型是由操作系统还是由其他方式定义的?