代码之家  ›  专栏  ›  技术社区  ›  Brian R. Bondy

试图摆脱C++的Boost警告

  •  5
  • Brian R. Bondy  · 技术社区  · 16 年前

    每当我在我的项目中加入boost时,我都会收到一百万条这样的警告。有人知道我怎样才能摆脱这些警告吗?

    :警告C4103: 'dependens\boost\config\abi_prefix.hpp' :包括后更改对齐方式 标题,可能是由于缺少#pragma

    我知道我可以用pragma禁用警告,但我想知道这些警告的原因。

    3 回复  |  直到 16 年前
        1
  •  6
  •   Stack Overflow is garbage    16 年前

    原因是boost不会在每个需要打包数据的文件中推送/弹出这些pragma。它们包括一个单独的文件(abi_prefix.hpp),然后是另一个文件(abo_suffix.hp),该文件执行push操作。

    这使得它们可以在任何地方重用相同的pragma包代码,这很方便,因为编译器之间可能会有所不同。

        2
  •  2
  •   Hans Passant    16 年前

    是的,您可以从config/abi/msvc_prefix.hpp中的#pragma pack指令中获得。它表示项目的默认打包不是8。这很不寻常,这是故意的吗?由于包装差异导致的错误可能有点难以诊断。

        3
  •  0
  •   Community CDub    8 年前

    我找到了摆脱这个警告的方法。

    您需要编辑boost\u 1\u**\ boost\config\user.hpp文件,并用boost\u DISABLE\u ABI\u标题取消注释该行

    因此,您应该在此文件中定义:

    #define BOOST_DISABLE_ABI_HEADERS
    

    build with bjam like you normally would .

    有关此解决方案的危险,请参见下面的注释