C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 添加#include会导致“有不同大小”的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一个(到目前为止)相当简单的C应用程序(实际上我刚开始将@R_280_9616@程序从Qt迁移出来并主要通过boost替换它的功能)我遇到了“常见”错误,如下所示:

我显然使用的是系统和文件系统库,直到现在,当包含asio头时,一切都进展顺利

#include <boost/asio.hpp>

因为这一行代码:return boost :: asio :: ip :: host_name();

正如我从boost文档中所理解的那样,asio是仅包含头文件库,因此我没有包含任何其他boost库,但libboost_system和libboost_filesystem开始导致这些问题.

我正在使用MinGW在Win 7上工作.我已经按照以下两个命令一次性构建了所有的升级库:

bootstrap mingw
b2 toolset=gcc

我使用相同的MinGW设置,因为我现在正在使用它来构建我的应用程序.当然,我使用这些预先构建的库来链接我的应用程序.

当我删除ASIO include时,我的构建再次起作用.

如果我为了简单起见错过了我配置中的一些重要部分,请发表评论.

解决方法

这些可见符号源自的两个不同的转换单元(error_code.o与codecvt_error_category.o)尚未使用相同的标志进行编译(或者,不太可能是boost / noncopyable.hpp的不同来源).

这或者意味着

>你的提升构建是不一致的(它是否部分重建?是否在构建过程中不一致地配置?你是否部分更新了工具链的一部分?)
>您正在使用boost_system的二进制文件,这些二进制文件来自与您用于boost_filesystem的构建版本不同的版本

可能是参与不一致的库之一是间接的(例如,您可能不知道您的程序间接使用boost文件系统,并且添加Asio依赖于不同的boost系统).

您还可以检查是否使用与编译程序相同的标志配置boost版本(包含#include< boost / asio.hpp>的那个);这在MSVC上尤其重要,其中使用库#pragmas自动选择链接器输入

大佬总结

以上是大佬教程为你收集整理的c – 添加#include会导致“有不同大小”的问题全部内容,希望文章能够帮你解决c – 添加#include会导致“有不同大小”的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。