我正在编写一个小型的C++程序,用于娱乐和扩展我的C++技能.由于其范围相对较小,我还计划通过使该程序支持Windows和Linux来尝试跨平台开发.
我认为我的C++熟练程度介于休闲和中级之间:OO,一些模板和设计模式,之前使用STL并试图更详细地研究它......但是,在编写这个小程序时,我发现我越深入挖掘C++,我就越痛苦,特别是当我开始理解和处理不同平台/供应商实现之间的差异时.
使用像Qt,ACE,Boost这样的跨平台框架似乎有助于加快开发速度,从而使生活更轻松,但我担心这是否会超出我的目的.如果有任何进行C++跨平台开发的"最佳实践",有人可以给出一些建议吗?谢谢.
如果有任何进行C++跨平台开发的"最佳实践",有人可以给出一些建议吗?
有三件事:
编写自己的代码,使其可移植
在抽象/绝缘/实用程序层后面包装特定于平台的API
选择跨平台库
您可以选择选项#2和/或#3.
#3优于#2的优点往往是"它已经被编写,调试和支持"; 而且缺点是,"我必须学习它,我可能要付出代价,我不一定能自己支持它,它可能不会完全符合我的要求."
开发人员通常更喜欢选项#3而不是#2,特别是如果它是免费的开源(你引用的所有三个库都是).
http://blog.backblaze.com/2008/12/15/10-rules-for-how-to-write-cross-platform-code/
应该为已经给出的答案提供更多细节.
另外,我建议使用现有的库来抽象字节序,数据类型大小和差异.在开始跨平台项目之前,应考虑以下事项.
GUI
Qt的
XVT
wxWidgets的
一般图书馆/框架
STL(已在大多数平台库中集成)
促进
游戏开发
SDL
的Cocos2D-X