【发布时间】:2011-06-05 21:08:30
【问题描述】:
我发现了其他人遇到此问题的示例,但他们的解决方案没有运气。我正在尝试在一个静态库中使用 std::cout,该库也使用 boost 线程和绑定。当我不使用 std::cout 时,它可以很好地编译并与主程序链接,但是当我这样做并编译库时,我没有问题,但是当我编译并链接使用静态库的主程序时,我得到了很多比如:
等等……
我已尝试进入我的链接器设置并阻止它使用错误输出中列出的冲突库,但我无法正确设置。如果我告诉它停止使用一个库,它可能会解决问题但给我一些丢失的外部符号,然后我切换它有问题的库,但我仍然得到一些“已经定义”的库。我可以做些什么来解决这个问题的任何线索?我是否应该只创建另一个名为“log”的类或其他东西,然后从主 .exe 访问它(它将使用字符串库,这可能会再次导致问题,但我还没有尝试过)?感谢您的帮助。
【问题讨论】:
-
你到底想
cout做什么? -
我只希望通过 boost 创建的新线程输出到用于创建 GUI 的进度,并将其用作调试和解决问题的简单方法(如果有)。
-
您可以编辑您的问题以列出您的
cout声明吗? -
您是否在 MSVC 中链接静态编译的 boost 库和运行时 DLL?确保您要么同时使用动态 DLL 库,要么同时使用静态 DLL。
标签: c++ visual-c++ linker-errors lnk2005