我正在尝试使用MinGW构build第三方开源项目。 其中一个依赖是wxWidgets。 当我尝试从MSYS的项目,我得到一个编译器错误
/MinGW/msys/1.0/local/include/wx-2.8/wx/msw/private.h
In function 'COLORREF wxColourToRGB(const wxColour&)': error: cannot convert 'RGB' to 'COLORREF {aka long unsigned int}' in return
这是有点奇怪的, 根据微软的RGB
macros返回一个COLORREF
。
实际上,在H:\ MinGW \ include中find包含以下代码的wingdi.h
#define RGB(r,g,b) ((COLORREF)((BYTE)(r)|((BYTE)(g) << 8)|((BYTE)(b) << 16)))
什么样的事情会导致这个错误? 有没有什么办法可以检查是否包含在wingdi.h中的COLORREF和RGB,而不是其他地方? 这甚至值得检查吗?
产品规格
(我是C ++和MinGW的新手,但通常是计算机和编程知识)
尝试使用-E
预处理源文件并检查宏扩展的实际情况,或者是否重新定义宏。
包含头部依赖关系后,预处理的源代码无疑将会非常冗长。 你的文本编辑器的搜索功能, grep
和findstr
在这里是你的朋友。