一个人可以使用哪些编程语言来创建共享/动态库?

时间:2019-02-17 20:32:05

标签: dll shared-libraries dylib dynamic-library

我知道C和C ++可以轻松创建共享库,但是我想要对我有所帮助的东西。 D看起来很有前途,但是我发现它很难编写,特别是在没有良好的IDE支持的情况下(VS插件是迄今为止最好的,但仍然很有限)。 Kotlin也可能是一个选择,但是它缺少任何标准库来执行文件管理(例如重命名文件)之类的事情。

我正在寻找一种具有良好标准库的语言(最好是面向对象的语言),该库可以在Windows,macOS和Linux中创建共享库(.dll,.dylib,.so),然后可由支持以下语言的任何语言使用C外部函数(例如,具有ctypes的Python)。

有这样的东西吗?

1 个答案:

答案 0 :(得分:1)

  

一种语言可以用来创建共享/动态库?

您可以使用任何compiled language来创建共享/动态库 或组合编译 编译为object files的语言,前提是所有 贡献编译器是ABI compatible

这是因为创建共享库仅需linking 一些编译器事先生成的许多目标文件, 可能与其他共享/动态库一起,以一种指示链接器输出共享/动态库的方式(例如,使用-shared GNU链接器的链接选项,或Microsoft链接器的/DLL选项)。链接器不知道源语言或从中编译其输入的语言。

关于哪种编译语言您会感到最满意,我的意见或建议 会是题外话。