我们想把-Werror=conversion添加到我们的代码库中,但是Eigen库的头文件会触发 * 很多 * 这样的错误。我想知道什么是最好的方法,使编译标志只应用于我们的代码,而不应用于第三方头文件。我们正在考虑的一个解决方案是为Eigen创建一个只包含我们需要的东西的 Package 器库。我们将编译不带标志的 Package 器。但这是一个有点大的任务。我想知道是否有其他的解决方案。
-Werror=conversion
mzmfm0qo1#
使用gcc,您可以通过-isystem包含Eigen头文件。它们将被视为系统头文件,并且不会报告任何警告。这会使所有警告静音,尽管对于经过良好测试的第三方库,这通常是可以的。
-isystem
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
2条答案
按热度按时间mzmfm0qo1#
使用gcc,您可以通过
-isystem
包含Eigen头文件。它们将被视为系统头文件,并且不会报告任何警告。这会使所有警告静音,尽管对于经过良好测试的第三方库,这通常是可以的。yvt65v4c2#
您可以使用以下代码创建标题Eigen.h: