我并不是 C++ 的新手,但我从来没有设法了解库。
我想将我的网络、图形和输入类集从我的主要可执行文件中分离出来,这样我就可以单独更新它们,而不是将所有代码的重新编译版本作为一个可执行文件发送出去。
这可能吗?我该如何跨平台? (例如,该过程将适用于 Windows、Linux 和 Mac)
最佳答案
正如@Armen 用最简单的术语所说的那样,这里的要求之一是一个尽可能/需要跨平台工作的库。 Qt 是显而易见的选择。还有其他类似 wxWidgets 的实现相同的东西,选择取决于你。
第二件事是所有“可升级”库都需要符合二进制兼容性(Qt promise 为每个主要版本做的事情,不知道 wxWidgets)。
第三,可能是“是的,呃!”部分:您需要将它们构建为共享库并链接这些共享库。
这三点应该允许您在不重建可执行文件本身的情况下替换库,并使它尽可能小。不过,不同平台的升级方式会有所不同(Linux:通过存储库自动升级,Mac 和 Windows 手动或通过您自己的更新软件,也许是 macports for Mac?)
关于C++ 跨平台库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234449/