开源软件编译(终结篇)
今天周三了。终于把上周半路丢给我的事情终结掉了。
搞了近一周,一个问题接一个问题的解决,真的很不容易。
周一解决掉上周碰到的问题,需要加编译宏D_LANGUAGE64(貌似是这个,记不太清了),cppflags加上这个编译宏,就解决了问题1,就是前文里面提到的这个问题。
问题1解决掉之后,就是后面的平台库升级,变更了很多接口,周一下午加晚上就是在解决适配接口的问题2。
周二来了,继续编译。都到了最后一步链接库了,出现了问题3。就是hidden symbol,符号atexit链接库出问题。我一个人闷头搞了一天加晚上加班到10点多,期间都没咋休息过。这个问题不像其他问题,有点上头。总觉得自己就差最后一步了,怎么就解决不掉?!到晚上整个人都虚浮了。
然后就是今天,感觉不能自己一个人闷头搞了。于是就先找了系统的接口人。第一个人说他也搞不定,然后又找了他另外一个同事。那个同事说,先要找到是哪个库引用这个系统接口的,于是一个个排查,终于找到罪魁祸首了,原来是另一个第三方的库,刚刚好这个库也是其中一个变更点(相对以前)。于是马上找这个库的接口人。第一个人上来说了几个可能的地方,改了之后没有解决;又找了第二个人进来,第二个人就有点各种推脱了,官话说了一堆;然后又拉第三个人进来,第三个人提供了几个解决方案,然后还发了一个链接说了类似问题的解决方法,但是都没有解决这个问题,不过他让我看configure文件,倒是让我想到一个疑点,不过当时没有验证;后面又找了第四个人进来,吭哧吭哧搞了一通,还是有问题。这个时候都5点多了,我以为都没希望了,然后第4个人过了会又走了,说有另外的问题。在这个间隙,我想了一下之前的那个疑点,就想着试一下。改完之后,我就让他跑着,自己出去上了个洗手间,顺便放松下,今天一下午都快把凳子坐穿了。本来也没抱很大希望,但是试一试,毕竟这种事情只有这一个办法。
结果上完卫生间回来,居然编译通过了!狂喜!!赶紧告诉一众朋友们,他们也觉得不可思议!然后他们说要把这个问题记录一下,回头看下有没有帮助。
运气不错啊,我感觉再不解决,我也要疯了。
马上去吃了晚饭,待了一会就下班了。我要好好放松下啦!