我正在尝试使用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,而不是其他地方?这是否值得检查?

规格
  • GCC版本4.7.2
  • wxWidgets版本2.8.12

  • (我是C++和MinGW的新手,但通常计算机和编程方面的知识者)

    最佳答案

    尝试使用-E预处理源,并检查宏扩展实际发生的情况或是否正在重新定义宏。

    预处理后的源无疑在用#include编码其头依赖项后将非常冗长。您的文本编辑器的搜索功能grepfindstr在这里是您的 friend 。

    10-06 06:03