链接步骤中的wxwidget 3.1.2代码块17.04错误

时间:2019-01-12 05:51:52

标签: c++ codeblocks wxwidgets

操作系统:Windows 10 64位 IDE:代码块17.12 编译器:gcc 7.3 与 wxWidget 3.1.2

我根据官方指南构建了wxWidget 3.1.2,没有更改任何默认值

make -f makefile.gcc(make v4.2)

我正在使用代码块wxwidget启动脚本3.1.X

我根据wxWidget构建选择了正确的选项 (整体unicode和调试)

代码块生成的示例问题未正确链接

(使构建失败,错误0错误0警告)

-------------- Clean: Debug in sac (compiler: GNU GCC Compiler)---------------

Cleaned "sac - Debug"

-------------- Build: Debug in sac (compiler: GNU GCC Compiler)---------------

g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Winvalid-pch -include wx_pch.h -DWX_PRECOMP -Wall -g -IC:\wxWidgets-3.1.2\include -IC:\wxWidgets-3.1.2\lib\gcc_dll\mswu -c C:\Users\MC\Desktop\wxw\sac\wx_pch.h -o wx_pch.h.gch\Debug_wx_pch_h_gch
g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Winvalid-pch -include wx_pch.h -DWX_PRECOMP -Wall -g -IC:\wxWidgets-3.1.2\include -IC:\wxWidgets-3.1.2\lib\gcc_dll\mswu -c C:\Users\MC\Desktop\wxw\sac\GUIFrame.cpp -o obj\Debug\GUIFrame.o
windres.exe -IC:\wxWidgets-3.1.2\include -IC:\wxWidgets-3.1.2\lib\gcc_dll\mswu  -J rc -O coff -i C:\Users\MC\Desktop\wxw\sac\resource.rc -o obj\Debug\resource.res
g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Winvalid-pch -include wx_pch.h -DWX_PRECOMP -Wall -g -IC:\wxWidgets-3.1.2\include -IC:\wxWidgets-3.1.2\lib\gcc_dll\mswu -c C:\Users\MC\Desktop\wxw\sac\sacApp.cpp -o obj\Debug\sacApp.o
g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Winvalid-pch -include wx_pch.h -DWX_PRECOMP -Wall -g -IC:\wxWidgets-3.1.2\include -IC:\wxWidgets-3.1.2\lib\gcc_dll\mswu -c C:\Users\MC\Desktop\wxw\sac\sacMain.cpp -o obj\Debug\sacMain.o
g++.exe -LC:\wxWidgets-3.1.2\lib\gcc_dll -o bin\Debug\sac.exe obj\Debug\GUIFrame.o obj\Debug\sacApp.o obj\Debug\sacMain.o  obj\Debug\resource.res -mthreads  -lwxmsw31u -mwindows
Process terminated with status 1 (0 minute(s), 11 second(s))

Process terminated with status 1 (0 minute(s), 11 second(s))

Process terminated with status 1 (0 minute(s), 12 second(s))
0 error(s), 0 warning(s) (0 minute(s), 12 second(s))

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

本文假定您已编译Font,并通过包含和正在使用 gcc 的make和 makefile.gcc 成功编译了可执行示例。

它还假定您已经在Windows中应用了环境变量,已应用了编译器标志wxWidgets 3.1.3和链接器标志wx-config --cxxflags

似乎其他所有人都已经删除了makefile库的命令,并已将其修复到代码块中。我想在一个应用程序中构建小型应用程序,因此我决定使用wx-config --libs构建 MONOLITHIC

因此,似乎最简单的解决方法是

CodeBlocks以与makefile不同的顺序排列链接器库的顺序,并阻塞了链接器,在我的情况下,从“主题”之类的内容到滚动条的问题而有所不同。

因此,我发现最快的解决方法是删除代码块构建选项列表中的所有条目,并仅输入“其他链接器选项”以进行调试和发布,这确实可行。

因此,在控制台列表中,makefile显示以makefile设置列表的顺序复制那些链接器设置。因此,除非有人为高于2.8.8的内容输入标头修正条目,否则此解决方法将很繁琐。

在我的情况下,工作顺序如下:

SHARED=0 UNICODE

在Release中,与指定调试文件的“ d”相同,即: -mwindows -lwxmsw31ud -lwxmsw31ud_gl -lwxscintillad -lwxtiffd -lwxjpegd -lwxpngd -lwxzlibd -lwxregexud -lwxexpatd -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme 而非-lwxmsw31u_gl-lwxmsw31ud_gl代替-lwxtiff等...