抑制 Xcode 对库 header 中内联函数的未使用函数警告的正确方法
Correct way to suppress Xcode's unused function warning for inline functions in library header
抑制 Xcode 对库中函数的未使用函数警告的正确方法是什么 header?
例如,我在MathUtils.h中定义了以下函数:
namespace MathUtils {
static std::complex<double> cis(double x) {
return std::complex<double>(cos(x), sin(x));
}
...
}
包含此header但未使用此特定功能的源文件会触发警告。
我可以在函数周围添加一个警告 pragma 以禁用警告,但这似乎不是正确的方法 - 这似乎是一个普遍问题。
如果您使用 -isystem
而不是 -I
指定文件的位置,clang 将默默地忽略 header 文件中的所有警告。有关详细信息,请参阅 http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers。
要使用 XCode 执行此操作,据我所知,您必须将适当的编译器标志添加到构建设置的 'Other C++ Flags' 部分。
此外,您收到警告只是因为您使用 static
定义了函数 - 这意味着该函数在包含 header 的每个翻译单元中单独定义,并且不可见到任何其他单位。您只需删除 static
关键字即可消除这些错误。
将函数更改为 static inline
而不是 static
可以解决问题。
抑制 Xcode 对库中函数的未使用函数警告的正确方法是什么 header?
例如,我在MathUtils.h中定义了以下函数:
namespace MathUtils {
static std::complex<double> cis(double x) {
return std::complex<double>(cos(x), sin(x));
}
...
}
包含此header但未使用此特定功能的源文件会触发警告。
我可以在函数周围添加一个警告 pragma 以禁用警告,但这似乎不是正确的方法 - 这似乎是一个普遍问题。
如果您使用 -isystem
而不是 -I
指定文件的位置,clang 将默默地忽略 header 文件中的所有警告。有关详细信息,请参阅 http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers。
要使用 XCode 执行此操作,据我所知,您必须将适当的编译器标志添加到构建设置的 'Other C++ Flags' 部分。
此外,您收到警告只是因为您使用 static
定义了函数 - 这意味着该函数在包含 header 的每个翻译单元中单独定义,并且不可见到任何其他单位。您只需删除 static
关键字即可消除这些错误。
将函数更改为 static inline
而不是 static
可以解决问题。