【发布时间】:2013-02-20 11:21:42
【问题描述】:
我正在尝试使用 Code::Blocks 12.11 构建 this wxWidgets sample program,但无论我尝试什么,构建都会失败。
例如构建日志显示如下(项目在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 toGdiFlush@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 toGetTextExtentPoint32W@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 toGdiFlush@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 toGetTextExtentPoint32W@16'| C:\BuildAgent\work\wxPack\wxwidgets\build\msw....\src\msw\window.cpp|2133|未定义对`GetTextMetricsW@8'的引用|
这里是完整的build log 和所有的build messages(顺便说一下,我没有 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 中的构建选项
- compiler settings > defines
- linker settings
- search directories > compiler
- search directories > linker
- search directories > resource compiler
提前感谢您的帮助:)
【问题讨论】:
-
那些函数定义在gdi32.lib中。
-
是的。听起来 gdi32 没有被链接。确保它及其目录列在适当的构建设置中。 (应该有一个要包含的库列表和搜索它们的路径。)
标签: c++ mingw wxwidgets linker-errors codeblocks