0

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

有任何想法吗?:(

4

1 回答 1

2

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

于 2011-05-09T14:25:29.560 回答