从 .SO ( linux ) 导出 C++ 类

Posted

技术标签:

【中文标题】从 .SO ( linux ) 导出 C++ 类【英文标题】:Exporting a C++ class from a .SO ( linux ) 【发布时间】:2010-02-22 00:15:09 【问题描述】:

如何将整个班级导出到共享库? 其他语言可以使用这个库吗? (帕斯卡)

【问题讨论】:

【参考方案1】:

默认情况下,所有符号在 linux 共享库中都是可见的。因此,您在其他程序中使用该类所需的所有内容都已导出。

通常 c++ 类不能被其他语言直接使用,但是有几种方法可以解决这个问题。例如,您可以编写 C 包装器或使用 SWIG。

【讨论】:

【参考方案2】:

默认情况下,共享对象中的每个函数都会被导出。因此,除非您使用链接描述文件来更改该默认值,否则您应该很高兴。

有一些方法可以更改该默认值。例如,指定-Blocal 将减少未分配给版本的任何符号。你在用flag吗?

【讨论】:

以上是关于从 .SO ( linux ) 导出 C++ 类的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CUDA C++ 创建和使用动态库“.so”并在 Linux 环境 (CentOS) 下的 C# 代码中使用它?

HalconHalcon联合C/C++及打包SO库

Linux_导出函数

从 C++ 源文件创建 Windows DLL

so文件简单的导出使用

linux c++ 怎么 调用自己函数的