C ++跨平台库

时间:2011-03-08 15:23:13

标签: c++ cross-platform libraries

我不是C ++的新手,但我从未设法理解图书馆。

我想从我的主要可执行文件中拆分我的网络,图形和输入类集,以便我可以单独更新它们,而不是将所有代码的重新编译版本作为单个可执行文件发送。

这可能,我该如何跨平台? (例如,该过程适用于Windows,Linux和Mac)

4 个答案:

答案 0 :(得分:4)

正如@Armen最简单地说的那样,这里的一个要求是一个尽可能跨平台工作的库。 Qt是明显的选择。还有像wxWidgets这样的其他人可以达到同样的目的,而且选择取决于你。

第二件事是所有“可升级”库都需要符合二进制兼容性(Qt承诺为每个主要版本做的事情,不知道wxWidgets)。

第三,可能是“是啊,呃!” part:您需要将它们构建为共享库并链接这些共享库。

这三点应该允许您替换库而无需重建可执行文件本身并保持尽可能小。不同平台之间的升级方式会有所不同(linux:自动通过存储库,Mac和Windows手动或通过自己的更新软件,也许是Mac的Macport?)

答案 1 :(得分:2)

是的,请使用Qt

答案 2 :(得分:1)

我发誓的两个图书馆,你可能想看看

SDL:
http://www.libsdl.org/
啧啧:
http://lazyfoo.net/SDL_tutorials/index.php

SFML:
http://www.sfml-dev.org/
啧啧:
http://www.sfml-dev.org/tutorials/1.6/

图形/网络/音频库!

答案 3 :(得分:0)

真的,这没有意义。在任何情况下,当您将二进制文件移动到另一个平台时,您将不得不重新编译该二进制文件,因为不同的平台使用不同的硬件并使用不同的二进制格式。没有理由不将您的“特定平台”代码链接到相同的二进制文件中。

源级别的跨平台确实有意义。