【发布时间】:2016-05-29 09:29:11
【问题描述】:
在编写一个(到目前为止)非常简单的 C++ 应用程序时(实际上我刚刚开始将我们的应用程序从 Qt 迁移出来并主要通过 boost 来替换它的功能)我遇到了一个“常见”错误,如下所示:
(路径修剪)\libboost_system.a(error_code.o):重复部分 .rdata$_ZTSN5boost12noncopyable_11noncopyableE[__ZTSN5boost12noncopyable_11noncopyableE]' 有不同的大小
(路径修剪)\libboost_filesystem.a(codecvt_error_category.o): 重复部分 .rdata$_ZTSN5boost12noncopyable_11noncopyableE[__ZTSN5boost12noncopyable_11noncopyableE]' 有不同的大小
我显然在使用系统和文件系统库,直到现在一切都很顺利,包括 asio 标头
#include <boost/asio.hpp>
因为这行代码:return boost::asio::ip::host_name();
据我从 boosts 文档中了解到,asio 是仅标头库,因此我没有包含任何其他 boost 库,但 libboost_system 和 libboost_filesystem 开始导致这些问题。
我正在使用 MinGW 开发 Win 7。我一口气构建了所有的 boost 库,发出以下两个命令:
bootstrap mingw
b2 toolset=gcc
我为它使用了与我现在用来构建我的应用程序相同的 MinGW 集。当然,我是否使用这些预构建的库来链接我的应用程序。
当我删除 ASIO 包含时,我的构建再次工作。
为简单起见,如果我遗漏了配置中的某些重要部分,请发表评论。
【问题讨论】: