我正在尝试建立这个wxWidgets示例程序 http://www.wxwidgets.org/docs/tutorials/hworld2.txt使用 Code::Blocks 12.11 但无论我尝试什么,构建都会失败。
例如,构建日志显示以下内容(该项目位于 X:\programming\c++\HelloWxWidgets 下):
mingw32-g++.exe -Wall -fExceptions -g -D_GNUWIN32_ -D_WXMSW_ -DwxUSE_UNICODE -D_WXDEBUG_ -IC:\libraries\wxWidgets-2.8.12.01\include -IC:\libraries\wxWidgets-2.8.12.01\contrib\include -IC:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\mswud -c X: \programming\c++\HelloWxWidgets\hworld2.cpp -o obj\Debug2\hworld2.o
mingw32-g++.exe -LC:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib -o bin\Debug2\HelloWxWidgets.exe obj\Debug2\hworld2.o -static-libgcc C:\libraries\wxWidgets-2.8.12.01 \lib\gcc_lib\libwxmsw28ud.a
C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o): 在函数中ZN8wxWindow6UpdateEv':
C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:1643: undefined reference to
GdiFlush@0'
C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o): 在函数中ZNK8wxWindow13GetTextExtentERK8wxStringPiS3_S3_S3_PK6wxFont':
C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:2132: undefined reference to
GetTextExtentPoint32W@16'
C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:2133:对“GetTextMetricsW@8”的未定义引用
这些是我收到的一些构建消息
C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o)||在函数中ZN8wxWindow6UpdateEv':|
C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\msw\window.cpp|1643|undefined reference to
GdiFlush@0'|
C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o)||在函数中ZNK8wxWindow13GetTextExtentERK8wxStringPiS3_S3_S3_PK6wxFont':|
C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\msw\window.cpp|2132|undefined reference to
GetTextExtentPoint32W@16'|
C:\BuildAgent\work\wxPack\wxwidgets\build\msw....\src\msw\window.cpp|2133|对“GetTextMetricsW@8”的未定义引用|
这是完整的构建日志 http://pastebin.com/kWZLFAdE和所有的构建消息 http://pastebin.com/Je2PfZY8(顺便说一句,我没有 C:\BuildAgent 目录)
我在用wxPack 2.8.12 http://wxpack.sourceforge.net/Main/Downloads(安装在 C:\libraries\wxWidgets-2.8.12.01 中)和 GCC 4.7.2(与 C:\mingw 中的 Code::Blocks 分开安装,使用mingw-get http://sourceforge.net/projects/mingw/ )
以下是 Code::Blocks 中的构建选项
- 编译器设置 > 定义 http://i47.tinypic.com/21d1s80.jpg
- 链接器设置 http://i49.tinypic.com/28r1wo.png
- 搜索目录 > 编译器 http://i45.tinypic.com/27yah6q.png
- 搜索目录 > 链接器 http://i47.tinypic.com/34nfvdk.png
- 搜索目录 > 资源编译器 http://i47.tinypic.com/25jw7kk.png
预先感谢您的帮助:)
好吧,我终于成功了:)
如果像我一样有人想在 Code::Blocks 下的(最初)控制台项目中使用 wxWidgets,我在此发布要遵循的过程。有了这个,任何人都应该至少能够构建/运行这个示例代码 http://www.wxwidgets.org/docs/tutorials/hworld2.txt在 Wind0ws 环境中:
- 我假设 Code::Blocks 和 MinGW 设置正确。
- 下载/安装 wxMSW 从http://www.wxwidgets.org/downloads/ http://www.wxwidgets.org/downloads/(就我而言,我下载了 wxMSW-2.8.12-Setup.exe 并将其安装在 C:\libraries\wxWidgets-2.8.12 中)
-
打开命令提示符,需要构建 wxWidgets,我将以使用 unicode 的静态链接、整体式调试构建为例(更多信息here http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef):
cd /D C:\libraries\wxWidgets-2.8.12\build\msw
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1
:(mingw32-make 需要一些时间来构建库)
打开代码::块
- 创建一个新的控制台项目,或者如果您已经有一个控制台项目(并且您计划向其中添加 wxWidgets GUI),请打开它
- 右键单击项目 > 构建选项
-
Here are the build options http://s23.postimage.org/4mjjohbaj/solution.png that I used for the Debug build.
- 构建并运行
[编辑] 除了 wx/wx.h 之外,还应该包含 wx/app.h
#include <wx/wx.h>
#include <wx/app.h>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)