[英]Building a wxWidgets program in Code::Blocks
我正在尝试使用Code :: Blocks 12.11构建这个wxWidgets示例程序,但无论我尝试什么,构建都会失败。
例如,构建日志显示以下内容(项目位于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
GetTextExtentP的ZNK8wxWindow13GetTextExtentERK8wxStringPiS3_S3_S3_PK6wxFont': C:\\BuildAgent\\work\\wxPack\\wxwidgets\\build\\msw/../../src/msw/window.cpp:2132: undefined reference to
oint32W @ 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
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
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:\\ BuildAgent目录)
我使用的是wxPack 2.8.12 (安装在C:\\ libraries \\ wxWidgets-2.8.12.01)和GCC 4.7.2(使用mingw-get与C :: \\ mingw中的Code :: Blocks分开安装)
以下是Code :: Blocks中的构建选项
谢谢你的帮助:)
好吧,我终于设法让它工作:)
如果像我一样,有人想在Code :: Blocks下的(最初)控制台项目中使用wxWidgets,那么我在这里发布要遵循的过程。 有了这个,任何人都应该能够在Wind0ws环境中构建/运行至少这个示例代码 :
打开命令提示符,需要构建wxWidgets,我将以使用unicode的静态链接,单片调试构建为例( 此处有更多信息):
cd /DC:\\libraries\\wxWidgets-2.8.12\\build\\msw
mingw32-make -f makefile.gcc BUILD = debug SHARED = 0 MONOLITHIC = 1 UNICODE = 1
:(mingw32-make需要一些时间来构建库)
打开Code :: Blocks
除了wx / wx.h之外,还应该包含[编辑] wx / app.h
#include <wx/wx.h>
#include <wx/app.h>
我发现一个最好的方法是在你的“其他班轮选项”中添加``wx-config --libs all`,在这个问题上,很多问题都会消失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.