qt5.6.0 + webrtc + vs2013

来源:互联网 发布:淘宝订单号查询物流 编辑:程序博客网 时间:2024/06/05 16:31

    先描述下这个问题:首先,为了兼容windowsXP,下载了一个比较早版本的webrtc源码包(2014年九月份的版本),使用vs2013编译webrtc, 基于webrtc做了一个dll库,打算将该dll导入到基于qt5.6.0开发的项目工程内,那么现在问题来了,为了在qtCreator中识别dll导出的接口(qt项目工程使用gcc编译),dll必须是纯C方式导出的,这时候qt项目工程能够使用vs2013导出的webrtc dll库中的接口,可是因为qt中的项目过于庞大,导致在后面的阶段,每次修改工程一小部分源码都要编译比较久的时间,开发效率,大大下降!所谓事务都是有两面性的,原来使用qt去开发项目,估计是为了获得比较好的跨平台性能!但是因为要跨平台所以使用了gcc去编译,导致项目工程的编译效率大大下降,这时候的我们应该要区别对待了,发布程序的时候使用gcc编译,不过在平产的开发过程中还是使用microsoft的VS工具吧,同样是使用qtCreator开发,但是在编译的时候编译器在gcc和msvc之间切换即可!然而,问题还没有这么简单,因为之前我使用vs2013编译的dll是win32平台下的,所以如果qtCreator选择了64位的编译器,还是不能使用我们的dll,这个时候就应该重新使用vs2013编译x64版本的对应dll,可惜我下载的支持windows XP的webrtc源码现在并不支持x64平台下的编译,这个只能重新修改、配置所有的项目工程属性了,想想看两百多的项目工程,目前来讲,一个个去配置是比较保险的方法,要是能找到批量修改属性的方法,当然是批量修改的好些!然而迄今没找到,先放一放吧。

    以为问题到现在就结束了?怎么可能,世界就是由问题组成的,当我们在qtCreator中使用vs2013_x86版本的编译器编译之前的项目工程时,发现“u8”是不可识别的标志,另外也冒出了其他问题,大多是因为vs2013_x86版本对c++11及其更加高级的c++版本的新特性支持得不够,没办法似乎我们需要选择vs2015_x86版本的编译器,因为dll是被引入到当前的qt工程中的,其实dll中的内容不用再编译一次,dll可都是二进制文件呢,之前我想使用vs2015去编译webrtc源码,期望能够生成dll,就解决这个问题了,但是使用vs2015在编译的时候却爆出了大量的编译错误,想要解决这个问题还得一个个修改项目属性,麻烦!索性使用vs2013编译webrtc dll,将之引入到qt项目中去,使用vs2015_x86版本的编译器编译整个工程,“u8”标志不识别的错误也解决了,dll中的接口也能被识别,至此总算实现了既能跨平台,也能提高工程的编译速度。

原创粉丝点击