我正在尝试在我的应用程序中链接pion网络库4.0.3。我试图简单地在RELEASE_STATIC模式下编译pion :: netlib-起作用了。但是,当我在应用程序中针对它进行链接时,会遇到很多无法解决的外部问题。

然后,我发现RELEASE_STATIC配置定义了PION_STATIC_LINKING,从另一篇关于另一个库的文章中,我发现我可能还需要在程序中定义PION_STATIC_LINKING。

这样做会在以下模板上产生100个错误:

error LNK2005: _tolower already defined in MSVCRT.lib(MSVCR100.dll) C:\Users\name\Documents\Visual Studio 2010\Projects\myproj\LIBCMT.lib(tolower.obj)  myproj


我尝试使用/ NODEFAULTLIB:libcmt,但仍然收到错误消息,指出某些函数已在pion-common.lib / pion-net.lib中定义。

有任何想法吗? :(

最佳答案

这很可能是因为您使用/ MT(多线程)设置进行代码生成来编译项目,而pion网络库是使用/ MD(多线程DLL)进行编译的,反之亦然。如果是/ MT,则尝试将配置更改为/ MD,反之亦然。为此,请转到Project -> <ProjectName> Properties... -> Configuration Properties -> C/C++ -> Code Generation。在右侧面板中,您应该能够看到设置Runtime Library。在此处更改选项,然后重建整个解决方案。

10-07 18:53