MinGW 和 Boost C++ 1.54.0 警告
Posted
技术标签:
【中文标题】MinGW 和 Boost C++ 1.54.0 警告【英文标题】:MinGW and Boost C++ 1.54.0 warnings 【发布时间】:2013-07-05 17:26:47 【问题描述】:我通常在构建时将警告视为错误。我正在使用 Boost C++ 1.54.0 和 MinGW 4.8.1,特别是我正在使用 ptree。
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
using namespace std;
int main()
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
这个简单的程序会导致以下错误:
typedef 'cons_element' locally defined but not used [-Wunused-local-typedefs] line 228, external location: \boost\tuple\detail\tuple_basic.hpp
typedef 'Str' locally defined but not used [-Wunused-local-typedefs] line 38, external location: \boost\property_tree\detail\xml_parser_write.hpp
typedef 'Str' locally defined but not used [-Wunused-local-typedefs] line 72, external location: \boost\property_tree\detail\xml_parser_write.hpp
typedef 'T_must_be_placeholder' locally defined but not used [-Wunused-local-typedefs] line 37, external location: \boost\bind\arg.hpp
有没有办法忽略这个警告?
【问题讨论】:
那是因为你有-Wunused-local-typedefs
编译选项,只需删除它,一切都很好!
我一直使用 -Wall 构建,不幸的是 gcc 不允许选择警告。
问题似乎是在开机,尝试在没有-Wall
的情况下编译,看看结果!你也可以使用-Wno-unused-local-typedefs
我不确定它是否有效!
【参考方案1】:
gcc 从 4.6 开始允许忽略特定警告
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
...
...
#pragma GCC diagnostic pop
仍有一些警告无法通过这种方式关闭,但它适用于大多数人
或者像其他提到的那样做,并将 -Wno-unused-local-typedefs 添加到命令行
【讨论】:
以上是关于MinGW 和 Boost C++ 1.54.0 警告的主要内容,如果未能解决你的问题,请参考以下文章