前言
接着讲这个,前面在mingw上成功编译了linphone 3.5.2版本,运行基本都没发现有问题。后面就开始编译最新版本linphone,编译这个第一步是必须独自编译安装belle-sip 1.3.0,编译这个必须先编译安装antlr 相应版本(官方文档写的是3.2或者3.4),和cunit2.
编译安装antlr很顺利,但编译belle-sip时,一直提示一个error:未定义的未定义 antlr3NewAsciiStringCopyStream,或者就是冲突定义的未定义 antlr3NewAsciiStringCopyStream,反正就这个一个警告,或者是错误,直接导致编译不能继续。
于是我各种重新安装antrl,安装antrl3.jar,均无济于事,百度毛豆没有,google到有几个遇到同样问题的外国开发者提出这个问题,但无人回答。我全盘搜索这个东西,没有,但我明明已经安装官方指定版本安装了,怎么会没有,于是各种折腾,修改configure,修改configure.ac等等等等,均徒劳。于是我向领导申请,为不耽误整体进度,先放放linphone3.7.0的编译,先用3.5.2,领导表示同意。这样可以减少我的心里压力。当然,研究linphone源码才是重头啊。安装我多年的经验,当喷到灰常蛋疼的,多番努力均不效果的问题时,可以先放几天,或者期间试着去解决,问题一般都会得到解决。
其实,查找到有一个宏判断,如果没有定义某个变量,就antlr3NewAsciiStringCopyStream,于是我自己在前面定义了一个该宏,结果这个问题过了,编译继续,当然后面也会遇到别的error,但我总感觉这样做不好。
周四,开始折腾这个问题的第四天,继续google antlr3NewAsciiStringCopyStream,发现有一句话,翻译过来就是这个关键字是antlr 3.4里已经gone了,而在3.2里继续保留。卧槽。
后面换了版本,这个就没了。这说明了一个什么问题,google时太大意,不留心细节信息。
后面又出现新的error,说不能连接到静态库libantrl3.la,只能使用动态库,动的人都知道,.la不是静态库,而就是动态库,是libtool生成的动态库,这个是我次日才知道了,碰到这个问题第一天的时候也各种configure过。那问题出在什么地方呢,于是file命了,查看libantrl3.la,结果windos 报缺少msy-magic-1.dll,所以msys才把动态库当静态库处理,于是google baidu 这个dll文件,没有。没办法,最后直接rm掉libantrl3.la这个文件,过了,狂汗,先这样过吧,没办法。
继续编译,出现没cunit的头文件,cuint这个东西我根本就配置都不过,问题一大推,于是重新下了一个不知道行不行,反正编译很顺利,于是系统提示无什么我就cp什么进去,最后过了,最后linphone3.7.0 for mingw就这样编译通过了。
当然期间还碰到其他很多问题,但均没有费多少时间,所以这里不在叙述。
本人qq994796397,可以一起讨论研究。欢迎转载,但请标明出处http://blog.youkuaiyun.com/l_yangliu/article/details/24464229