C++17 中包含 XPM 图像时发出警告

Mef*_*ico 2 c++ c++17

我正在开发一个用std=c++17and编译的 C++ 项目-Wall标志编译的 C++ 项目。我通常需要清除警告。

我尝试过包含xpm使用在线工具从 png 文件生成的图像,并收到以下警告:

warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

最糟糕的是,此消息一遍又一遍地重复,以至于我的控制台不再保留错误消息。

有什么方法可以在保留两个标志的同时抑制此警告吗?我可以对 xpm 文件进行任何修改吗?

Jes*_*uhl 5

您用来创建 XPM 文件的工具可能只考虑了 C 语言(或准标准 C++),其中缺少const并不是一个错误。然而,在 C++ 中,字符串文字是const并且语言强制执行的。你无法改变这件事,所以 achar*对它来说没有意义,应该是 a const char*

最简单的解决方案是简单地编辑 xpm 文件并添加const.