使用Boost和Clang编译c++项目的问题

Problem compiling c++ project using Boost with Clang

本文关键字:项目 问题 c++ 编译 Boost Clang 使用      更新时间:2023-10-16

我决定通过编译我的一个已经在GCC下编译的c++项目来尝试Clang。我的项目依赖于Boost,由于包含"Boost/asio.hpp",clang在使用迂腐标志编译时出现以下错误:

lib/boost_1_46_1/mac/boost/date_time/date_generators.hpp:37:30: error: extra ';' 
inside a class [-pedantic]

如果我想让这个项目编译,我的选项是什么?我宁愿不编辑这个问题出现的各种boost头。

我刚刚查看了标题内部,有问题的行是year_based_generator() {};,这是一个微不足道的构造函数。所以clang是正确的,;是不必要的。

因为-pedantic是用来捕捉这样的东西的,我认为最好的方法是通知boost人员关于这一点,特别是因为他们对这些分号不一致,所以这几乎不是他们编码指南的一部分。

不要禁用-pedantic,你可以使用pragmas只对有问题的boost库禁用它。

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-pedantic"
// include boost headers
#pragma clang diagnostic pop

应该可以。

你给了clang -pedantic选项吗?看起来-pedantic正在触发错误。你可以删除这个选项