2010-08-04 74 views
0

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

如此看来,当我只是用我的静态库的测试应用程序,我将与第三方共享,以显示为如何使用我的静态库的例子...它说以下内容:

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 &)已经在mylib中定义了(?? 4?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ QAEAAV01 @ ABV01 @@ Z) .lib(cryptlib.obj)msvcprt.lib TestApp

回答

0

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