我使用的是我构建的第三方静态库(发行版)。现在,我正在构建自己的静态库(只是添加了一些特定于我想要与第三方静态库一起完成的功能)。我的库构建了一个很好的发布版本。然而,现在我打算与外部方共享这个库(它是我使用的免费静态库,所以许可不是问题),当我在vs2008中创建测试应用程序时,我只是创建了一个compositelib.lib,我通过lib.exe使用它来获取我的静态库+第三方库。然而,这样做,似乎我得到了很多lnk2001。当我尝试手动添加一些我认为缺少的对象时,它会告诉我它们已经是我创建的静态库的一部分。所以当我去掉那些obj的时候,它就会显示出lnk2001未解析的链接。不知道在这里还能做什么。
因此,当我只是在测试应用程序中使用我的静态库时,我将与第三方分享如何使用静态lib...it的示例如下:
lnk2005已经定义了mystaticlib(test.obj)。在所有lnk2005病例中,绝大多数都是这种test.obj。
错误11错误LNK2005:"public:类std::basic_string,类std::allocator >& __thiscall std::basic_string,类std::allocator >::operator=(类std::basic_string,类std::allocator > const &)“mylib.lib已在mylib.lib(cryptlib.obj) msvcprt.lib TestApp中定义
发布于 2010-08-05 00:12:41
好吧,在这种情况下,答案是我弄乱了vs2008中的设置。请确保在代码生成下创建静态库时,其多线程/mt。只需确保始终使用/mt设置即可。
https://stackoverflow.com/questions/3407263
复制相似问题