代码编译总结

    想打算搞一款属于本身的游戏,若是本身手写的话,还真没有那个实力,由于不单单是程序的技术实现,框架实现,还有数值系统,本身的功力尚浅,因此就拿别人的东西来试试手。而后本身就选择了一款比较早的开源游戏,M.A.R.S(有兴趣的童鞋能够本身百度)。linux

    别看老外程序员的工资蛮高的,其实没必要国内的生存环境好多少,他们的高收入上面对软件以及互联网的各类收费不比低收入的国内程序员强多少(国内各类破解,盗版等等啦)。对于操做系统便是如此,老外热衷于linux,在国内看来,linux博大精深,搞linux的都是大神,哈哈,这实际上是种误解,linux在服务器上的应用确实强大,可是别的地方特别是家用的,linux没什么优点,那些老外搞得linux上的各类办公软件只能证实他们就是屌丝,用不起windows,(毕竟2000块钱呢),而咱们就不同了,咱们能够用各类注册和破解。因此老外的开源项目linux平台上的实际上是蛮多的。话所回来,这款游戏虽然能跨平台,可是做者只给了linux的支持,而我须要把他改为windows版本。程序员

    那么linux迁移到windows平台上通常会遇到哪些问题呢?windows

        1.编译器不同(GNC和vs平台的差别,包括语法,包括支持库的不一样)服务器

        2.项目的配置。框架

固然我这里还好,没有遇到那么多的问题,游戏项目还算工整,我就把在luban的那种项目配置方式拿过来用了,而后把代码 头文件,lib文件都分开放入各自的目录中,而后依赖项sfml放好。而taglib,fribidi两个库没有windows版本,这两个库分别是用做播放声音和编码转换用的,分析游戏框架便可知道,这两个东西只在文件加载和播放声音的地方试用了下,这里打算替换为本身的。函数

        3.就是编译时目前只支持多字节,不支持unicode.而后就是配置的时候须要加入宏定义。 有:_USE_MATH_DEFINES,__WIN32__,WIN32。编码

          其中替换fribidi的时候,文件编码的转换,遇到了很大的一个坑,还有就是分析函数的做用那里遇到了一些问题,最好才定位明白。操作系统

在这里须要具有一些能力:code

        1.函数的准肯定位功能。游戏

        2.分析代码,须要分析一些宏是否要加好。

        3.模块之间的依赖关系。

        4.代码错误以后的,定位分析能力。

相关文章
相关标签/搜索