是否可以从共享库公开一组 C++ 函数?

问题描述 投票:0回答:1

我有一个共享库和一组我想从该共享库公开的函数。 这些函数是 C++ 函数,即它们不是

extern c

有人建议我使用名称空间并有一个公开该名称空间的链接器脚本。我不太明白这意味着什么,谷歌在这里没有多大帮助。

是否可以直接从共享库公开名称空间中的 C++ 函数,以便当有人 DLOpens SO 时,它会自动在该名称空间下的应用程序中可用?

c++ linker c++17 shared-libraries
1个回答
0
投票

大多数时候没有。 基本上,库可以是二进制的(ABI),并且私有函数是无法访问的。 如果您可以隔离要使用的功能,则可以使用具有

private
继承(例如
class foo : private std::list
)的类/结构创建接口,并使用包装函数公开此功能。

© www.soinside.com 2019 - 2024. All rights reserved.