我正在尝试使用MinGW构建第3方开源项目。依赖项之一是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的新手,但通常计算机和编程方面的知识者)
最佳答案
尝试使用-E
预处理源,并检查宏扩展实际发生的情况或是否正在重新定义宏。
预处理后的源无疑在用#include
编码其头依赖项后将非常冗长。您的文本编辑器的搜索功能grep
和findstr
在这里是您的 friend 。