windows 10 上的 wxWidgets 3.1.0 项目错误

wxWidgets 3.1.0 project error on windows 10

我是这里的新手,我需要帮助来编译我的 wxwidgets 项目以使用代码块。

我从 http://www.wxwidgets.org/downloads/

下载了 wxwidgets windows 安装程序 'wxMSW-3.1.0-Setup.exe'

i 运行 要安装的程序,然后我在系统属性>>高级系统设置>>环境变量中阅读了有关设置环境变量的信息。因此我通过将变量名设置为 "path" 并将变量值设置为 "C:\Program Files (x86)\CodeBlocks\MinGW\bin".

来实现

还阅读了有关在 cmd 提示符下为 wxwidget 构建的信息,因此启动 cmd 并在下面输入此类过程(有些花费了很长时间)。

  1. mingw32-make -v
  2. cd C:\wxWidgets-3.1.0\build\msw
  3. mingw32-make -f makefile.gcc 干净
  4. mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1
  5. mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1

毕竟我继续制作了一个 wxwidgets 项目。 我在制作 wxwidgets 项目 "a matching debug configuration cannot be found in the wxwidgets directory you specified" 和 "a matching release configuration cannot be found in the wxwidgets directory you specified"

时遇到了两个错误

但后来我跳过并继续进行项目,在构建之后 运行 我在下面遇到了这些错误。

调试构建日志:

----------------构建:在testwx中调试(编译器:GNU GCC编译器)----------------

mingw32-g++.exe -LC:\wxWidgets-3.1.0\lib\gcc_lib -o bin\Debug\testwx.exe obj\Debug\testwxApp.o obj\Debug\testwxMain.o [=70= .res -mthreads -lwxmsw30u -lwxpng -lwxjpeg -lwxtiff -lwxzlib -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32=m[=103 C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: 找不到 -lwxmsw30u collect2.exe: 错误: ld 返回 1 退出状态 进程以状态 1 终止(0 分钟,5 秒) 2 个错误,0 个警告(0 分钟,5 秒)

发布构建日志:

---------------- Build: Release in testwx (compiler: GNU GCC Compiler)----------------

windres.exe -IC:\wxWidgets-3.1.0\include -IC:\wxWidgets-3.1.0\lib\gcc_lib\mswu -J rc -O coff -i C:\Users\AJIKAH~1\DOCUME~1\Programs\WXWIDG~1\testwx\resource.rc -o obj\Release\resource.res mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -O2 -std=c++11 -IC:\wxWidgets-3.1.0\include -IC :\wxWidgets-3.1.0\lib\gcc_lib\mswu -c "C:\Users\A JIKAH\Documents\Programs\wxWidgets\testwx\testwxApp.cpp" -o obj\Release\testwxApp.o mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -O2 -std=c++11 -IC:\wxWidgets-3.1.0\include -IC :\wxWidgets-3.1.0\lib\gcc_lib\mswu -c "C:\Users\A JIKAH\Documents\Programs\wxWidgets\testwx\testwxMain.cpp" -o obj\Release\testwxMain.o mingw32-g++.exe -LC:\wxWidgets-3.1.0\lib\gcc_lib -o bin\Release\testwx.exe obj\Release\testwxApp.o obj\Release\testwxMain.o obj\Release\resource.res -s -mthreads -lwxmsw30u -lwxpng -lwxjpeg -lwxtiff -lwxzlib -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -mwindows C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: 找不到 -lwxmsw30u collect2.exe: 错误: ld 返回 1 退出状态 进程以状态 1 终止(0 分钟,33 秒) 2 个错误,0 个警告(0 分钟,33 秒)

现在我将 code::blocks 16.01 更新为 code::blocks 17.01.

有人可以帮我解决这个问题吗?

你说你下载了 "wxMSW-3.1.0-Setup.exe"。但是这部分“...找不到-lwxmsw30u ...”意味着您正在尝试 link 使用来自 wxWidgets 3.0 的库。

为了确保您的项目正在尝试 link 使用正确版本的 wxWidgets,在代码块向导的第二页(显示 "Please select the wxWidgets version you want to use" 的页面),请务必 select "wxWidgets 3.1.x" 选项。

导致 "matching configuration cannot be found" 问题的另一个常见原因是没有 select 在向导的第 8 页(显示 "Please select various configuration options" 的那一页)选择正确的选项。由于您说您使用选项“SHARED=0 MONOLITHIC=1 UNICODE=1”构建库,因此请务必检查 "wxWidgets is built as a monolithic library" 和 "Enable unicode" 并确保未选中 "Use wxWidgets DLL"。

@MrSudden,

您将库构建为 MONOLITHIC 有什么原因吗?

此配置也受支持,但不推荐使用,可能会导致长 运行 出现问题。 它也没有经过核心 wx 团队的大测试,因此很可能会损坏。

建造 "monolithic" 图书馆与建造 "multilib" 图书馆没有任何收获。

谢谢。