从 .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# 代码中使用它?