gpt4 book ai didi

c++ - 静态库中带有 std::cout 的 MSVC 2010 链接器错误 2005

转载 作者:太空狗 更新时间:2023-10-29 19:42:33 25 4
gpt4 key购买 nike

我发现了其他人遇到这个问题的例子,但没有找到他们的解决方案。我正在尝试在静态库中使用 std::cout,该静态库也使用 boost 线程和绑定(bind)。当我不使用 std::cout 时,它编译并与主程序链接得很好,但是当我这样做并且我编译库时我没有问题但是当我编译和链接主程序时使用静态库我得到了很多类似的东西:

2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)2>LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)2>LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRTD.lib(MSVCR100D.dll)2>LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRTD.lib(MSVCR100D.dll)2>LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR100D.dll)2>LIBCMT.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj)

等...

我已经尝试进入我的链接器设置并阻止它使用错误输出中列出的冲突库,但我无法正确设置。如果我告诉它停止使用一个库,它可能会解决问题,但会给我一些缺少的外部符号,然后我切换它有问题的库,但我仍然得到一些“已经定义”的库。关于我可以做些什么来解决这个问题的任何线索?我是否应该创建另一个名为“log”或其他类的类,然后从主 .exe 访问它(这将使用字符串库,这可能会再次导致问题,但我还没有尝试过)?感谢您的帮助。

最佳答案

尝试检查 -> 项目 + 属性、C/C++、代码生成、运行时库。您的 .lib 和主项目必须在此处使用相同的设置。

关于c++ - 静态库中带有 std::cout 的 MSVC 2010 链接器错误 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com