c++ - 用 C++ 编写可移植动态加载库的最简单方法是什么?

标签 c++ plugins shared-libraries portability dynamic-loading

我正在开发一个项目,该项目有多个相似的代码路径,我想将它们从主项目中分离到插件中。该项目必须保持跨平台兼容,我研究过的所有动态库加载 API 都是特定于平台的。

创建一个无需额外修改代码即可在多个操作系统上编译和运行的动态库加载系统的最简单方法是什么?理想情况下,我想编写一个插件,并让它在项目支持的所有操作系统上运行。

谢谢。

最佳答案

您必须为加载系统 使用平台相关代码。在 Windows 上加载 DLL 与在 Unix 上加载共享对象是不同的。但是,通过几个 #ifdef,您将能够在加载程序中拥有大部分相同的代码库。

话虽如此,我认为您可以让您的插件平台独立。当然,您必须为每个平台编译它,但代码将 99% 相同。

关于c++ - 用 C++ 编写可移植动态加载库的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561022/

相关文章:

python - 如何访问 CKAN 扩展中的 session 对象?

Vim 显示垃圾字符

plugins - 如何在自定义 gradle 插件中迭代 gradle 依赖项?

compiler-construction - 位置独立代码和共享对象

C++ 奇怪的字符串/字符* 异常行为

python - 使用 boost python 暴露多态性

c++ - 如何在不添加对库的依赖的情况下添加与库结构的兼容性?

c - 与没有版本的共享库链接

c++ - 控制台应用程序返回一个奇怪的值

c++ - 魔方回溯和递归 C++