原文链接:https://blog.csdn.net/qtstar/article/details/54732581
一、(首先要把teamtalk整个项目download下来或git一个副本下来)打开teamtalk.sln解决方案,升级为vs2015项目。编译解决方案,提示错误信息如图所示:
好吧,按VS大爷的提示把这个宏添加到相应项目的预编译宏中(Properties->c/c++->Preprocessor->Preprocessor Definitions),再跑VS,如果还有提示此宏错误,再到相应项目添加上,直到不再有此错误提示为止。
二、提示有两处结构体初始化的错误,如下图所示:
将mbstate_t out_state = 0;修改为mbstate_t out_state = {0}; 两处初始化错误都是按同样方法更改即可,继续前进。
三、提示mfcs120ud.lib错误,如下图所示:
在对应提示出错的项目的属性中库(Properties->Linker->Input->Additional Dependencies)引用中更改其名称为mfcs140ud.lib即可,(需要改的项目为utility、modules)
四、bui~bui~错误又来了,提示错误如下图所示:
解决此错误只需重新编译protobuf源码和security生成新的lib文件复制到win-client/3rdParty/lib/debug目录下即可,easy job...
A、解压win-client/3rdParty目录下的protobuf-2.6.1压缩包,打开protobuf-2.6.1/vsprojects/protobuf.sln文件编译,其将提示与步骤一中显示的错误一样,按步骤一解决方法添加上预编译宏即可解决(因为我们只需libprotobuf和libprotobuf-lite此两个库,解决完这两个编译出来即可其他项目不管了,完成编译后在protobuf目录下的Debug目录中生成此两个库),此错误提示图如下:
B、编译security库,(注:先安装Cmake好并把其安装路径添加到path中)进入/server/src/libsecurity/win/目录下命令行运行build.bat批处理文件,但其提示“else 不是内部或外部命令,也不是可运行的程序或批处理文件。”修改批处理文件else跟随到右括号)后面即可,切记要安装好cmake哟,不然无法跑这个脚本生成VS项目文件.
运行脚 本后生成项目文件后运行解决方案生成库也复制到win-client/3rdParty/lib/debug目录下即可
编译时会提示int8_t重复定义,将security.h中的typedef注释掉编译.
还有一个错误即是在以下的两行注释内容最后面添加半角的句号,对的就是这个点"."号
修正后如下图所示:
OK,security库编译收工.
五、继续回到teamtalk编译,编译器一路高歌猛进,势如破竹,无错误完成编译。