我正在尝试使用MinGW构建第三方开源项目。其中一个依赖项是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
由于according to Microsoft RGB
宏返回COLORREF
,这有点奇怪。
事实上,查看H:\ MinGW \ include我找到wingdi.h,代码如下
#define RGB(r,g,b) ((COLORREF)((BYTE)(r)|((BYTE)(g) << 8)|((BYTE)(b) << 16)))
什么样的事情会导致这个错误?有什么方法可以检查是否包含了来自wingdi.h而不是其他地方的COLORREF和RGB?这甚至值得检查吗?
规格
(我是C ++和MinGW的新手,但通常是计算机和编程知识)
答案 0 :(得分:1)
尝试使用-E
预处理源代码,并检查宏扩展实际发生了什么,或者是否正在重新定义宏。
在#include
其标头依赖项之后,预处理源无疑会非常冗长。您的文本编辑器的搜索功能grep
和findstr
是您的朋友。