0

我正在使用一个外部库,它有一个特定的头文件,它的头文件中有大约 50 个未使用的静态变量。我正在使用 gcc 5.5.0、cmake 和 c++14。当我尝试编译时,我得到-Werror=unused-variable. 通常我会解决如下问题:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
// libraries which have unused variables here
// ...
#pragma GCC diagnostic pop

但是,未使用的变量是静态变量,因此一旦处理了整个编译单元,而不是在声明点,就会发出未使用的(静态)变量。因此,在声明点上激活警告抑制根本没有任何作用,当您将其弹出时,警告在实际重要的点上不会被忽略;即,在文件结束之后。这是一个报告的 GCC 错误。见:https ://gcc.gnu.org/bugzilla/show_bug.cgi?id=69967

我现在不能只切换 gcc 版本,因此我正在尝试解决这个问题。

一种解决方案是(void)(unsused_var)在每个包含此特定标头的 cpp 文件中执行此操作,但是这会导致相当丑陋的 hack,因为我需要将大约 50 个此类转换放入多个 cpp 文件中。有什么建议可以有效地解决这个特定问题吗?例如,我很乐意将演员表放在一个地方,但是我不知道在这种情况下如何去做。

4

0 回答 0