使用 C/C++ 以外的语言构建共享库,特别是 prolog

Posted

技术标签:

【中文标题】使用 C/C++ 以外的语言构建共享库,特别是 prolog【英文标题】:Building Shared Libraries Using Languages other than C/C++ in particular prolog 【发布时间】:2012-10-02 08:22:37 【问题描述】:

是否可以使用 C 或 C++ 以外的语言构建共享库(例如 *.so*.dll)?

构建共享库的基本要求是什么?该语言是否能够编译为本机二进制文件?

我特别想知道是否可以从 Prolog 构建共享库。

例如我可以使用 Prolog 构建一个.so,然后我可以从另一种语言、C、Java、Python 等链接到它。

【问题讨论】:

【参考方案1】:

您可以使用多种语言构建共享库。我经常使用的是Delphi,它可以为windows创建dll。

对于 Prolog,不确定是否可以创建共享库,它需要某种运行时环境,如果有的话,我会从 GNU-Prolog 开始。问题与其说是技术问题,不如说是许可问题。

有一些 prologs 可以用作共享库,并与您的应用程序链接,用任何可以包含共享库的东西(大多数语言)编写。一个快速的谷歌出现了这些http://www.swi-prolog.org/FAQ/,http://www.gprolog.org/#platform

【讨论】:

你能直接从C/C++调用你的delphi共享库吗? 确定取决于您使用的 C/C++。 esanu.name/delphi/DLL/… 或 ***.com/questions/6017787/using-a-delphi-dll-in-c。对于非 embarcadero C++,您通常必须编写一个与 C 兼容的小包装器 - 对于从 C 调用的任何对象语言都相同。或者您可以使用 COM

以上是关于使用 C/C++ 以外的语言构建共享库,特别是 prolog的主要内容,如果未能解决你的问题,请参考以下文章

CMake、SWIG 和共享库

使用c/c++ Openssl库,建立安全连接流程?

怎么制作静态库和共享库 C++/C

c语言编程,sinx?

c语言编程中,sinx怎么表示?

使用vc将C的代码封装成为DLL