视觉工作室2008年图书馆问题

时间:2010-08-04 15:44:50

标签: visual-c++

我正在使用我构建的第三方静态库(发行版)。现在,我正在构建自己的静态库(只是添加了一些特定于我想要做的功能以及第三方静态库)。我的库建立了很好的发布版本。但是,现在我打算与外部方共享这个库(它是一个免费的静态库,我正在使用,因此授权不是问题)当我在vs2008中创建一个测试应用程序时,我刚刚创建了一个我使用的compositelib.lib通过lib.exe获取我的静态lib +第三方lib。然而这样做似乎我得到了很多lnk2001。当我尝试手动添加一些我认为缺少的obj时,它说它们已经是我创建的静态库的一部分了。所以当我拿出那些obj的时候,它会显示lnk2001未解析的链接。不知道还有什么可以做的。

因此,当我在测试应用程序中使用我的静态库时,我将与第三方共享,以显示如何使用我的静态库...它说如下:

lnk2005已经定义了mystaticlib(test.obj)。并且绝大多数只是针对lnk2005的所有情况报告的test.obj。

错误11错误LNK2005:“public:class std :: basic_string,class std :: allocator>& __thiscall std :: basic_string,class std :: allocator> :: operator =(class std :: basic_string, class std :: allocator> const&)“(?? 4?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ QAEAAV01 @ ABV01 @@ Z)已在mylib.lib中定义(cryptlib.obj)msvcprt.lib TestApp

1 个答案:

答案 0 :(得分:0)

好的,在这种情况下,答案是我搞砸了vs2008中的设置。请确保在代码生成下创建静态库时多线程/ mt。只需要确保/ mt设置一直使用。