没有写过跨平台程序,要么在win下面写,要么在mac下面写,混合写的情况很少,一般用c写出来的代码可以在两边共同编译,但仅仅是部分;
在阅读doubango开源代码中,有些收获
假定这么一个问题:如何开发多平台的模块?
这个是宏大的命题。不针对这个问题回答,仅仅以自身提升
首先第一点,要知晓确定一门多平台语言,比如c语言
其次,在移植多平台开发中,需要注意主流平台的编译协定。同时要定义一套用于区分平台的配置信息。
比如:
#ifdef __SYMBIAN32__
#undef _WIN32 /* Because of WINSCW */
#endif
/* Windows (XP/Vista/7/CE and Windows Mobile) macro definition.
*/
#if defined(WIN32)|| defined(_WIN32) || defined(_WIN32_WCE)
# define TNET_UNDER_WINDOWS 1
#endif
#if defined(__APPLE__)
# include <TargetConditionals.h>
#endif
// OS X or iOS
#if defined(__APPLE__)
# define TNET_UNDER_APPLE 1
#endif
其中TNET_UNDER_WINDOWS和TNET_UNDER_APPLE就是依据各自IDE协定的来定义的自身一套配置信息,用于后续代码分别实现。
再次,编写代码尽量用多平台共有函数接口。
重要的一点:基本掌握各自平台开发的库以及调试经验
在开发过程中,先定义接口,再分平台实现。最后才是完整的合并代码