RakNet静态库默认是静态链接到C运行时库,而Poco的静态库默认是动态链接到C运行时库,即所谓的Mt和Md的区别。如果你在项目中同时使用两个库的话,就会出问题。
解决方法是,重新静态编译RakNet,修改设置,动态链接到C运行时库。Visual Studio中,代码生成一栏,改运行库为多线程调试 DLL / 多线程 DLL 。
顺便说一下,要静态链接,需要事先定义预处理器 POCO_STATIC。他会自动在库包含路径中找对应名称的Lib文件,不用你自己指定库名称。
解决RakNet与Poco C运行时冲突
本文介绍了如何解决RakNet和Poco库在项目中因C运行时库不同导致的问题。主要讨论了RakNet静态库与Poco静态库之间的差异,并提供了解决方案:通过修改RakNet的编译设置使其动态链接到C运行时库。
RakNet静态库默认是静态链接到C运行时库,而Poco的静态库默认是动态链接到C运行时库,即所谓的Mt和Md的区别。如果你在项目中同时使用两个库的话,就会出问题。
解决方法是,重新静态编译RakNet,修改设置,动态链接到C运行时库。Visual Studio中,代码生成一栏,改运行库为多线程调试 DLL / 多线程 DLL 。
顺便说一下,要静态链接,需要事先定义预处理器 POCO_STATIC。他会自动在库包含路径中找对应名称的Lib文件,不用你自己指定库名称。

被折叠的 条评论
为什么被折叠?