我正在尝试3.2.2.1使用Code::Blocks附带的MinGW编译wxWidgets www.example.com。
我使用以下设置进行编译(在config.gcc文件中也是如此)
mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=0 MONOLITIC =0 BUILD=release UNICODE=0
在编译结束时,我得到了这个错误消息:
../../src/msw/main.cpp: In function 'int wxEntry()':
../../src/msw/main.cpp:359:72: error: no matching function for call to 'wxEntry(int&, wchar_t**)'
return wxEntry(wxMSWCommandLineGetArgc(), wxMSWCommandLineGetArgv());
^
../../src/msw/main.cpp:182:5: note: candidate: 'int wxEntry(int&, wxChar**)'
int wxEntry(int& argc, wxChar **argv)
^~~~~~~
../../src/msw/main.cpp:182:5: note: no known conversion for argument 2 from 'wchar_t**' to 'wxChar**' {aka 'char**'}
../../src/msw/main.cpp:355:5: note: candidate: 'int wxEntry()'
int wxEntry()
^~~~~~~
../../src/msw/main.cpp:355:5: note: **candidate expects 0 arguments, 2 provided**
mingw32-make.exe: *** [makefile.gcc:12809: gcc_msw\baselib_main.o] Error 1
我不认为我的编译器有任何问题,因为我尝试在Code::Blocks中构建和运行简单的C和C++代码,没有任何问题。现在我想创建一个wxWidgets项目。
我尝试再次下载wxWidgets安装文件并重新编译它,但仍然得到相同的错误。
任何帮助将不胜感激。谢谢
1条答案
按热度按时间ohfgkhjo1#
没有Unicode支持的构建在3.2.2中确实被无意中破坏了,感谢@ssbssa注意到这一点。它将在3.2.3中得到修复(并且已经是fixed in the latest 3.2 branch),但现在请使用默认和推荐的编译选项,即只需要执行
mingw32-make.exe -f makefile.gcc BUILD=release
来构建库的发布版本(尽管如果您计划调试应用程序,省略BUILD=release
将是一个好主意)。特别是,请不要使用
UNICODE=0
,除非你真的需要这样做。我正在使用一些非常旧的遗留代码,这些代码不能用默认的UNICODE=1
编译。请注意,对UNICODE=0
的支持多年来一直被官方弃用,并将在下一个wxWidgets版本中完全放弃。