无法将 wxWidgets 应用程序与代码::块/MinGW 链接
Can't link wxWidgets app with Code::Blocks / MinGW
我有一个已经在Eclipse中构建的c++ + wxWidgets应用程序,其中wxWidgets使用MSYS构建。
现在我想尝试不同的IDE,如CodeLite和Code::Blocks,但是当我尝试它们时,它们不起作用,因为我缺少他们想要的构建.cfg文件。所以我尝试了一种"干净"的方式,备份了wxWidgets,并使用MinGW32-make而不是MSYS重新构建它们。
现在尝试代码:阻止,我收到很多"未定义的引用"错误,我无法理解我做了什么或设置错了什么。
我将尝试在此处提供所有相关信息:
wxWidgets 的路径:
C:SVILUPPOTOOLSwxWidgets
路径变量(相关部分)
PATH=C:SVILUPPOTOOLSMinGWbin;C:SVILUPPOTOOLSMinGWlibexecgccmingw324.8.1;
明武 v4.8.1,制作版本
C:SVILUPPOTOOLSwxWidgets>mingw32-make -v
GNU Make 3.82.90
Built for i686-pc-mingw32
wxWidgets build command:
C:SVILUPPOTOOLSwxWidgetsbuildmsw>mingw32-make -f makefile.gcc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=1
代码::块构建日志:
-------------- Build: Debug in MyProject (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcCustomControlsTAntiAliasedGaugeTAntiAliasedGauge.cpp -o objDebugsrcCustomControlsTAntiAliasedGaugeTAntiAliasedGauge.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcfMainForm.cpp -o objDebugsrcfMainForm.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcGUI_MainForm.cpp -o objDebugsrcGUI_MainForm.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcMy_Project.cpp -o objDebugsrcMy_Project.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcProva_wxcrafter_bitmaps.cpp -o objDebugsrcProva_wxcrafter_bitmaps.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:SVILUPPOTOOLSwxWidgetslibgcc_libmswud -IC:SVILUPPOTOOLSwxWidgetsinclude -c C:SourceCodeblocksProgettiMyProjectMyProjectsrcUtilitiesUtilities.cpp -o objDebugsrcUtilitiesUtilities.o
C:SourceCodeblocksProgettiMyProjectMyProjectsrcUtilitiesUtilities.cpp: In function 'char HexToChar(char*)':
C:SourceCodeblocksProgettiMyProjectMyProjectsrcUtilitiesUtilities.cpp:73:66: warning: operation on 'HexString' may be undefined [-Wsequence-point]
return (char)((AscHex(*HexString++) * 16) | AscHex(*HexString++));
^
C:SourceCodeblocksProgettiMyProjectMyProjectsrcUtilitiesUtilities.cpp: In function 'byte HexToByte(char*)':
C:SourceCodeblocksProgettiMyProjectMyProjectsrcUtilitiesUtilities.cpp:77:66: warning: operation on 'HexString' may be undefined [-Wsequence-point]
return (byte)((AscHex(*HexString++) * 16) | AscHex(*HexString++));
^
mingw32-g++.exe -LC:SVILUPPOTOOLSwxWidgetslibgcc_lib -o binDebugMyProject.exe objDebugsrcCustomControlsTAntiAliasedGaugeTAntiAliasedGauge.o objDebugsrcfMainForm.o objDebugsrcGUI_MainForm.o objDebugsrcMy_Project.o objDebugsrcProva_wxcrafter_bitmaps.o objDebugsrcUtilitiesUtilities.o -mthreads -lwxmsw30ud -lwxpngd -lwxjpegd -lwxtiffd -lwxzlibd -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -mwindows
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `StartElementHnd':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:637: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `TextHnd':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:687: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `StartCdataHnd':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:702: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `CommentHnd':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:727: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `PIHnd':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:742: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetslibgcc_lib/libwxmsw30ud.a(monolib_xml.o): In function `ZN13wxXmlDocument4LoadER13wxInputStreamRK8wxStringi':
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:813: undefined reference to `XML_ParserCreate'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:826: undefined reference to `XML_SetUserData'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:827: undefined reference to `XML_SetElementHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:828: undefined reference to `XML_SetCharacterDataHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:829: undefined reference to `XML_SetCdataSectionHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:830: undefined reference to `XML_SetCommentHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:831: undefined reference to `XML_SetProcessingInstructionHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:832: undefined reference to `XML_SetDefaultHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:833: undefined reference to `XML_SetUnknownEncodingHandler'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:840: undefined reference to `XML_Parse'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:843: undefined reference to `XML_GetErrorCode'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:843: undefined reference to `XML_ErrorString'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:846: undefined reference to `XML_GetCurrentLineNumber'
C:SVILUPPOTOOLSwxWidgetsbuildmsw/../../src/xml/xml.cpp:865: undefined reference to `XML_ParserFree'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 29 second(s))
19 error(s), 2 warning(s) (0 minute(s), 29 second(s))
我还尝试在链接器设置中添加我在 arm-linux 下构建此代码时必须添加的其他库,但这些库文件不存在(我想是"导致 MONOLITHIC 选项"):
libwxmsw30ud_core.a
libwxmsw30ud_html.a
libwxmsw30ud_adv.a
libwxbase30ud_xml.a
libwxmsw30ud_richtext.a
最后,我不知道我应该怎么做才能最终从 Code::Block 链接和调试我的源代码。
您需要
与构建wxWidgets时创建的libwxexpat.a
链接。
相关文章:
- MinGW在Cygwin上.关于链接GNU科学图书馆的一些问题
- 使用 MINGW 和 CPLEX 库链接从 Linux 编译 Windows 可执行文件
- 带有 mingw-w64 的 SDL2 - 链接器找到 libSDL2.a,但抛出"undefined reference"错误
- Eclipse/MinGW 不会链接库
- C++ MinGW GCC CodeBlocks静态链接
- 嵌入 python3.6 和 MinGW 在C++链接失败
- 如何使用MINGW-W64通过链接时间优化构建QT
- 静态链接再次链接boost.test和cmake在Windows上的mingw
- mingw链接路径
- GLFW MinGW 链接错误
- Windows C++Eclipse MinGW链接动态和静态库
- 在Windows x86_64上使用MinGW链接OpenGL
- 使用MingW链接protobuf错误
- 模板专用化会导致Windows上的MinGW链接错误,而不是Linux上的GCC
- 使用minGW链接库
- 代码::具有MinGW链接的块失败
- 使用mingw链接静态库(a)到exe
- 奇怪的mingw链接错误与boost
- 无法将 wxWidgets 应用程序与代码::块/MinGW 链接
- 我需要与MinGW链接哪些库以使用Clang构建的对象文件