c++ wxWidgets:main.cpp函数int wxEntry()中的编译错误:需要0个参数,提供了2个

o7jaxewo  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(154)

我正在尝试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安装文件并重新编译它,但仍然得到相同的错误。
任何帮助将不胜感激。谢谢

ohfgkhjo

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版本中完全放弃。

相关问题