cmake 如何避免对第三方标头应用编译标志

relj7zay  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(170)

我们想把-Werror=conversion添加到我们的代码库中,但是Eigen库的头文件会触发 * 很多 * 这样的错误。我想知道什么是最好的方法,使编译标志只应用于我们的代码,而不应用于第三方头文件。
我们正在考虑的一个解决方案是为Eigen创建一个只包含我们需要的东西的 Package 器库。我们将编译不带标志的 Package 器。但这是一个有点大的任务。我想知道是否有其他的解决方案。

mzmfm0qo

mzmfm0qo1#

使用gcc,您可以通过-isystem包含Eigen头文件。它们将被视为系统头文件,并且不会报告任何警告。这会使所有警告静音,尽管对于经过良好测试的第三方库,这通常是可以的。

yvt65v4c

yvt65v4c2#

您可以使用以下代码创建标题Eigen.h:


# pragma once

# ifdef __GNUC__

# pragma GCC diagnostic push

# pragma GCC diagnostic ignored "-Wconversion"

# endif

# include <Eigen/Core>

// ...

# ifdef __GNUC__

# pragma GCC diagnostic pop

# endif

相关问题