使用GCC-4.8.1在MinGW上编译wxWidgets-2.8.12时出错 [英] Error while compiling wxWidgets-2.8.12 on MinGW with GCC-4.8.1

查看:159
本文介绍了使用GCC-4.8.1在MinGW上编译wxWidgets-2.8.12时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试着用MinGW的GCC(版本4.8.1)编译wxWidgets,并且一直从g ++接收错误,并说:

  ../../ src / msw / treectrl.cpp:在成员函数'virtual bool wxTreeCtrl :: MSWOnNo 
tify(int,WXLPARAM,WXLPARAM *)':
.. /../src/msw/treectrl.cpp:2581:17:error:'NMTVDISPINFOWW'未在
中声明此范围
TV_DISPINFO * info =(TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2581:30:错误:'info'未在此范围内声明

TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2581:51:错误:预期的主要表达式之前')
'令牌
TV_DISPINFO *信息= (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2581:52:error'expected';''lParam'
前TV_DISPINFO * info =(TV_DISPINFO *)lParam ;
^
在.. \..\include/wx/msw/gccpriv.h:22:0包含的文件中,
来自.. \..\include / wx / platform.h:577,
来自.. \..\include / wx / defs.h:21,
来自.. \..\include / wx / wxprec。 h:13,
来自../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:2615:17:error:' NMTVDISPINFOWW'未在
中声明此范围
TV_DISPINFO *信息=(TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2615:30:错误:'info'未在此范围内声明

TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2615:51:错误:在''之前预期的初级表达式')
'令牌
TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2615:52:error:expected';''lParam'
前TV_DISPINFO * info =(TV_DISPINFO *)lParam ;
^
在.. \..\include/wx/msw/gccpriv.h:22:0包含的文件中,
来自.. \..\include / wx / platform.h:577,
来自.. \..\include / wx / defs.h:21,
来自.. \..\include / wx / wxprec。 h:13,
来自../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:2659:17:error:' NMTVDISPINFOWW'未在
中声明此范围
TV_DISPINFO *信息=(TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2659:30:错误:'info'未在此范围内声明

TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2659:51:错误:在''
'令牌
TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:2659:52:error:expected';''lParam'
前TV_DISPINFO * info =(TV_DISPINFO *)lParam ;
^
在.. \..\include/wx/msw/gccpriv.h:22:0包含的文件中,
来自.. \..\include / wx / platform.h:577,
来自.. \..\include / wx / defs.h:21,
来自.. \..\include / wx / wxprec。 h:13,
来自../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:3084:17:error:' NMTVDISPINFOWW'未在
中声明此范围
TV_DISPINFO *信息=(TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:3084:30:错误:'info'未在此范围内声明

TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:3084:51:错误:在''
'令牌
TV_DISPINFO * info = (TV_DISPINFO *)lParam;
^
../../src/msw/treectrl.cpp:3084:52:error'expected';''lParam'
前TV_DISPINFO * info =(TV_DISPINFO *)lParam ;
^
makefile.gcc:9310:目标配方'gcc_mswudll\coredll_treectrl.o'失败
mingw32-make:*** [gcc_mswudll\coredll_treectrl.o]错误1

任何人都可以提供帮助,我尝试过使用Google搜索,但效果甚微(是的,我确实阅读过它们!) 。

解决方案

您的头文件中似乎有一个错误, NMTVDISPINFOWW (带有2个尾随的W)不存在,并且不应该出现在任何地方。您可以尝试修复头文件中的拼写错误或下载已知可用的Windows版gcc(例如MinGW-w64或TDM-GCC)。


I've been trying to compile wxWidgets with MinGW's GCC (version 4.8.1), and have been receiving errors from g++, saying:

../../src/msw/treectrl.cpp: In member function 'virtual bool wxTreeCtrl::MSWOnNo
tify(int, WXLPARAM, WXLPARAM*)':
../../src/msw/treectrl.cpp:2581:17: error: 'NMTVDISPINFOWW' was not declared in
this scope
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                 ^
../../src/msw/treectrl.cpp:2581:30: error: 'info' was not declared in this scope

                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                              ^
../../src/msw/treectrl.cpp:2581:51: error: expected primary-expression before ')
' token
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                               ^
../../src/msw/treectrl.cpp:2581:52: error: expected ';' before 'lParam'
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                ^
In file included from ..\..\include/wx/msw/gccpriv.h:22:0,
                 from ..\..\include/wx/platform.h:577,
                 from ..\..\include/wx/defs.h:21,
                 from ..\..\include/wx/wxprec.h:13,
                 from ../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:2615:17: error: 'NMTVDISPINFOWW' was not declared in
this scope
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                 ^
../../src/msw/treectrl.cpp:2615:30: error: 'info' was not declared in this scope

                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                              ^
../../src/msw/treectrl.cpp:2615:51: error: expected primary-expression before ')
' token
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                               ^
../../src/msw/treectrl.cpp:2615:52: error: expected ';' before 'lParam'
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                ^
In file included from ..\..\include/wx/msw/gccpriv.h:22:0,
                 from ..\..\include/wx/platform.h:577,
                 from ..\..\include/wx/defs.h:21,
                 from ..\..\include/wx/wxprec.h:13,
                 from ../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:2659:17: error: 'NMTVDISPINFOWW' was not declared in
this scope
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                 ^
../../src/msw/treectrl.cpp:2659:30: error: 'info' was not declared in this scope

                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                              ^
../../src/msw/treectrl.cpp:2659:51: error: expected primary-expression before ')
' token
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                   ^
../../src/msw/treectrl.cpp:2659:52: error: expected ';' before 'lParam'
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                    ^
In file included from ..\..\include/wx/msw/gccpriv.h:22:0,
                 from ..\..\include/wx/platform.h:577,
                 from ..\..\include/wx/defs.h:21,
                 from ..\..\include/wx/wxprec.h:13,
                 from ../../src/msw/treectrl.cpp:21:
../../src/msw/treectrl.cpp:3084:17: error: 'NMTVDISPINFOWW' was not declared in
this scope
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                 ^
../../src/msw/treectrl.cpp:3084:30: error: 'info' was not declared in this scope

                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                  ^
../../src/msw/treectrl.cpp:3084:51: error: expected primary-expression before ')
' token
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                   ^
../../src/msw/treectrl.cpp:3084:52: error: expected ';' before 'lParam'
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;
                                                    ^
makefile.gcc:9310: recipe for target 'gcc_mswudll\coredll_treectrl.o' failed
mingw32-make: *** [gcc_mswudll\coredll_treectrl.o] Error 1

Can anyone help, I've tried googling, but with minimal results (and yes I did read them!).

解决方案

You seem to have a bug in your headers, NMTVDISPINFOWW (with 2 trailing Ws) doesn't exist and shouldn't appear anywhere. You can try fixing the typo in the headers themselves or downloading a distribution of gcc for Windows known to work (such as MinGW-w64 or TDM-GCC).

这篇关于使用GCC-4.8.1在MinGW上编译wxWidgets-2.8.12时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆