静态链接到pion网络库

时间:2011-05-09 14:14:47

标签: c++ visual-c++ static-linking multiple-definition-error pion-net

我正在尝试在我的应用程序中链接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中定义了某些函数。

有什么想法吗? :(

1 个答案:

答案 0 :(得分:2)

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