与第三方共享 RTOS 库的静态与共享库因此无需源代码

问题描述

我知道有人问过类似的问题,但我还是不清楚。

我为 Zephyr RTOS 编写了一个包含多个驱动程序和模块的库。现在我想与公司共享该库的一部分,但不是作为源代码。这个想法是为他们拥有的特定硬件编译相关的源代码,然后共享它。这样我就可以控制它用于哪些产品,当然我不想与他们分享我的源代码

起初我尝试只共享一个静态库,但这并没有为他们编译。 Zephyr 的 CMake 扩展尚不支持共享库,因此我还没有尝试过。如果这是要走的路,我会深入研究。

我有哪些选择?共享库与静态库(+ 目标文件?)?有什么推荐?

更多信息 Zephyr 使用设备树。因此,我提供的驱动程序/模块是为特定的硬件目标编译的。我希望公司为我提供相关的硬件定义,以便我可以向他们提供适用于他们特定目标的驱动程序/模块的预编译库。有时可能需要更新此库以包含错误修正/新功能

由于二进制文件是使用应用程序 + 库编译的,静态库与共享库的权衡是什么?

解决方法

我认为共享库和头文件是可行的方法。因为他们提供了优势。喜欢更小的二进制大小和更新的灵活性。你可以在这里找到一个很好的描述。 https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

C++ 推荐使用共享库,因为它在 Linux 或类似 Linux 的系统上提供了灵活性 https://www.bogotobogo.com/cplusplus/libraries.php