我正在编写一个跨平台的 OpenGL 函数加载库。在 Windows 上,编译器(奇怪的是,VS和GCC)似乎很好地将一种函数指针(从wglGetProcAddress
a的返回类型void(*)()
)隐式转换为另一种类型的函数指针。
然而, Linux上的 GCC不是。glXGetProcAddress
将返回 a void(*)()
,但它总是会发出警告。而且由于 OpenGL 确实有成千上万个这样的东西,它加起来是一个完全无关紧要的巨大诊断喷涌。
有没有办法禁用这个特定的警告?通过某种#pragma
或某种方式重新排列代码以使 GCC 关闭?我尝试了整个#pragma diagnostic ignore -Wblahblah
,但我找不到与我收到的警告相匹配的“blahblah”。