文档章节

代码编译总结

阳666
 阳666
发布于 2017/03/06 15:52
字数 718
阅读 11
收藏 0

    想打算搞一款属于自己的游戏,如果自己手写的话,还真没有那个实力,因为不仅仅是程序的技术实现,框架实现,还有数值系统,自己的功力尚浅,所以就拿别人的东西来试试手。然后自己就选择了一款比较早的开源游戏,M.A.R.S(有兴趣的童鞋可以自己百度)。

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

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

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

        2.项目的配置。

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

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

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

在这里需要具备一些能力:

        1.函数的准确定位功能。

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

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

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

    

© 著作权归作者所有

阳666
粉丝 6
博文 78
码字总数 63755
作品 0
杨浦
程序员
私信 提问
我需要知道:编译、链接、装载、运行

  本文是 Piasy 原创,发表于 https://blog.piasy.com,请阅读原文支持原创 https://blog.piasy.com/2017/10/24/I-Need-Know-About-Compile-Link-Load-Execute/   九月除了看H.264,还看...

深度学习
2018/01/12
0
0
#if..#else..#endif-------if...else区分

#if..#else..#endif #是在编译时处理的,属于预处理阶段,只会把符合条件的编译到可执行文件中; 例如: #if 1 printf("11111n"); #else printf("else else n"); #endif //结束#if 在编译时,......

李东委
2014/11/29
0
0
一段话系列-Java是否是解释执行语言?

Java是半执行半解释执行语言,首先,Java会由Javac编译成字节码,这是编译;然后字节码会交由JVM中的解释器进行解释执行,这是解释;还有就是针对于经常运行的Hot(热点)代码,会有JIT编译为...

EasyProgramming
03/28
0
0
标注图+部分举例聊聊Vue生命周期

“你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。” 现在项目中遇到了,好好回头总结一波Vue生命周期,以后用到的时候再来翻翻。 啥叫Vue生命周期? ...

Sadhu
2018/10/31
0
0
makefile 之阶段总结--1--写一个简单的makefile

一. 没有makefile&&make的时候 在没有make&&makefile的时候,我是在IDE中编译程序的.最开始使用命令行编译程序,是在写OJ题目的时候,毕竟OJ题目只需要一个文件,在命令行中编译运行...

小代码2016
2014/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云云栖社区
33分钟前
4
0
比特币第三方API大全

在开发比特币应用时,除了使用自己搭建的节点,也可以利用第三方提供的比特币api,来获取市场行情、进行交易支付、查询账户余额等。这些第三方api不一定遵循标准的比特币rpc接口规范,但往往...

汇智网教程
44分钟前
4
0
Dozer:Dozer异常java.lang.ClassCastException

这个问题是个很难发现的问题,因为代码本身没有错误,但就是无法找到报错原因 现记录下这个报错 java.lang.ClassCastException:com.XXX.ObjectA cannot be cast to com.XXX.ObjectA 代码中并...

琴兽
今天
2
0
Feign Retryer的默认重试策略测试

1、Feign配置 @Configurationpublic class FeignConfig { @Value("${coupon_service.url:http://localhost:8081}") private String couponServiceUrl; @Bean publ......

moon888
今天
2
0
关于不同域名下的session共享问题

如果登录,首页,分类,列表,产品都在不同的二级域名下,主域名不变,一定要保证里面的版本问题,不能为了更新而更新,这样哪个下面的session都访问不了。

dragon_tech
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部