简体   繁体   English

wxWidgets编译MinGW - 错误1和错误2

[英]wxWidgets Compiling MinGW - Error 1 & Error 2

I'm trying to compile wxWidgets (latest stable build 2.8.12) with a working bin copy of MinGW from my installation of Code::Blocks. 我正在尝试使用我安装的Code :: Blocks中的MinGW的工作bin副本来编译wxWidgets(最新的稳定版本2.8.12)。 I've tried setting the system environment variables as well as the normal build commands and the unicode ones, all of them give me [clean] Error 1 and/or [clean] Error 2. 我已经尝试过设置系统环境变量以及正常的构建命令和unicode命令,所有这些都给我[干净]错误1和/或[清除]错误2。

This is what happens when I try doing a normal build via mingw32-make.exe -f makefile.gcc clean 当我尝试通过mingw32-make.exe -f makefile.gcc clean进行正常构建时会发生这种情况

C:\wxWidgets-2.8.12\build\msw> mingw32-make.exe -f makefile.gcc clean
if exist gcc_mswd\*.o del gcc_mswd\*.o
if exist gcc_mswd\*.d del gcc_mswd\*.d
if exist ..\..\lib\gcc_lib\libwxregexd.a del ..\..\lib\gcc_lib\libwxregexd.a
if exist ..\..\lib\gcc_lib\libwxzlibd.a del ..\..\lib\gcc_lib\libwxzlibd.a
if exist ..\..\lib\gcc_lib\libwxpngd.a del ..\..\lib\gcc_lib\libwxpngd.a
if exist ..\..\lib\gcc_lib\libwxjpegd.a del ..\..\lib\gcc_lib\libwxjpegd.a
if exist ..\..\lib\gcc_lib\libwxtiffd.a del ..\..\lib\gcc_lib\libwxtiffd.a
if exist ..\..\lib\gcc_lib\libwxexpatd.a del ..\..\lib\gcc_lib\libwxexpatd.a
if exist ..\..\lib\gcc_lib\wxmsw28d_gcc_custom.dll del ..\..\lib\gcc_lib\wxmsw28
d_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d.a del ..\..\lib\gcc_lib\libwxmsw28d.a
if exist ..\..\lib\gcc_lib\libwxmsw28d.a del ..\..\lib\gcc_lib\libwxmsw28d.a
if exist ..\..\lib\gcc_lib\wxbase28d_gcc_custom.dll del ..\..\lib\gcc_lib\wxbase
28d_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxbase28d.a del ..\..\lib\gcc_lib\libwxbase28d.a
if exist ..\..\lib\gcc_lib\libwxbase28d.a del ..\..\lib\gcc_lib\libwxbase28d.a
if exist ..\..\lib\gcc_lib\wxbase28d_net_gcc_custom.dll del ..\..\lib\gcc_lib\wx
base28d_net_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxbase28d_net.a del ..\..\lib\gcc_lib\libwxbase28d
_net.a
if exist ..\..\lib\gcc_lib\libwxbase28d_net.a del ..\..\lib\gcc_lib\libwxbase28d
_net.a
if exist ..\..\lib\gcc_lib\wxmsw28d_core_gcc_custom.dll del ..\..\lib\gcc_lib\wx
msw28d_core_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_core.a del ..\..\lib\gcc_lib\libwxmsw28d_
core.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_core.a del ..\..\lib\gcc_lib\libwxmsw28d_
core.a
if exist ..\..\lib\gcc_lib\wxmsw28d_adv_gcc_custom.dll del ..\..\lib\gcc_lib\wxm
sw28d_adv_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_adv.a del ..\..\lib\gcc_lib\libwxmsw28d_a
dv.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_adv.a del ..\..\lib\gcc_lib\libwxmsw28d_a
dv.a
if exist ..\..\lib\gcc_lib\wxmsw28d_media_gcc_custom.dll del ..\..\lib\gcc_lib\w
xmsw28d_media_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_media.a del ..\..\lib\gcc_lib\libwxmsw28d
_media.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_media.a del ..\..\lib\gcc_lib\libwxmsw28d
_media.a
if exist ..\..\lib\gcc_lib\wxbase28d_odbc_gcc_custom.dll del ..\..\lib\gcc_lib\w
xbase28d_odbc_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxbase28d_odbc.a del ..\..\lib\gcc_lib\libwxbase28
d_odbc.a
if exist ..\..\lib\gcc_lib\libwxbase28d_odbc.a del ..\..\lib\gcc_lib\libwxbase28
d_odbc.a
if exist ..\..\lib\gcc_lib\wxmsw28d_dbgrid_gcc_custom.dll del ..\..\lib\gcc_lib\
wxmsw28d_dbgrid_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_dbgrid.a del ..\..\lib\gcc_lib\libwxmsw28
d_dbgrid.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_dbgrid.a del ..\..\lib\gcc_lib\libwxmsw28
d_dbgrid.a
if exist ..\..\lib\gcc_lib\wxmsw28d_html_gcc_custom.dll del ..\..\lib\gcc_lib\wx
msw28d_html_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_html.a del ..\..\lib\gcc_lib\libwxmsw28d_
html.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_html.a del ..\..\lib\gcc_lib\libwxmsw28d_
html.a
if exist ..\..\lib\gcc_lib\wxmsw28d_qa_gcc_custom.dll del ..\..\lib\gcc_lib\wxms
w28d_qa_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_qa.a del ..\..\lib\gcc_lib\libwxmsw28d_qa
.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_qa.a del ..\..\lib\gcc_lib\libwxmsw28d_qa
.a
if exist ..\..\lib\gcc_lib\wxbase28d_xml_gcc_custom.dll del ..\..\lib\gcc_lib\wx
base28d_xml_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxbase28d_xml.a del ..\..\lib\gcc_lib\libwxbase28d
_xml.a
if exist ..\..\lib\gcc_lib\libwxbase28d_xml.a del ..\..\lib\gcc_lib\libwxbase28d
_xml.a
if exist ..\..\lib\gcc_lib\wxmsw28d_xrc_gcc_custom.dll del ..\..\lib\gcc_lib\wxm
sw28d_xrc_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_xrc.a del ..\..\lib\gcc_lib\libwxmsw28d_x
rc.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_xrc.a del ..\..\lib\gcc_lib\libwxmsw28d_x
rc.a
if exist ..\..\lib\gcc_lib\wxmsw28d_aui_gcc_custom.dll del ..\..\lib\gcc_lib\wxm
sw28d_aui_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_aui.a del ..\..\lib\gcc_lib\libwxmsw28d_a
ui.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_aui.a del ..\..\lib\gcc_lib\libwxmsw28d_a
ui.a
if exist ..\..\lib\gcc_lib\wxmsw28d_richtext_gcc_custom.dll del ..\..\lib\gcc_li
b\wxmsw28d_richtext_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_richtext.a del ..\..\lib\gcc_lib\libwxmsw
28d_richtext.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_richtext.a del ..\..\lib\gcc_lib\libwxmsw
28d_richtext.a
if exist ..\..\lib\gcc_lib\wxmsw28d_gl_gcc_custom.dll del ..\..\lib\gcc_lib\wxms
w28d_gl_gcc_custom.dll
if exist ..\..\lib\gcc_lib\libwxmsw28d_gl.a del ..\..\lib\gcc_lib\libwxmsw28d_gl
.a
if exist ..\..\lib\gcc_lib\libwxmsw28d_gl.a del ..\..\lib\gcc_lib\libwxmsw28d_gl
.a
mingw32-make.exe -C ..\..\samples -f makefile.gcc LINK_DLL_FLAGS="-shared" LINK_
MODULE_FLAGS="-shared" CC="gcc" CXX="g++" CFLAGS="" CXXFLAGS="" CPPFLAGS="" LDFL
AGS="" CPP="gcc -E" SHARED="0" WXUNIV="0" UNICODE="0" MSLU="0" BUILD="debug" DEB
UG_INFO="default" DEBUG_FLAG="default" MONOLITHIC="0" USE_GUI="1" USE_HTML="1" U
SE_MEDIA="1" USE_XRC="1" USE_AUI="1" USE_RICHTEXT="1" USE_OPENGL="0" USE_ODBC="0
" USE_QA="0" USE_EXCEPTIONS="1" USE_RTTI="1" USE_THREADS="1" USE_CAIRO="0" USE_G
DIPLUS="0" OFFICIAL_BUILD="0" VENDOR="custom" WX_FLAVOUR="" WX_LIB_FLAVOUR="" CF
G="" CPPUNIT_CFLAGS="" CPPUNIT_LIBS="" RUNTIME_LIBS="dynamic" GCC_VERSION="3" cl
ean
mingw32-make.exe[1]: Entering directory `C:/wxWidgets-2.8.12/samples'
if exist .\*.o del .\*.o
if exist .\*.d del .\*.d
mingw32-make.exe -C access -f makefile.gcc LINK_DLL_FLAGS="-shared" LINK_MODULE_
FLAGS="-shared" CC="gcc" CXX="g++" CFLAGS="" CXXFLAGS="" CPPFLAGS="" LDFLAGS=""
CPP="gcc -E" SHARED="0" WXUNIV="0" UNICODE="0" MSLU="0" BUILD="debug" DEBUG_INFO
="default" DEBUG_FLAG="default" MONOLITHIC="0" USE_GUI="1" USE_HTML="1" USE_MEDI
A="1" USE_XRC="1" USE_AUI="1" USE_RICHTEXT="1" USE_OPENGL="0" USE_ODBC="0" USE_Q
A="0" USE_EXCEPTIONS="1" USE_RTTI="1" USE_THREADS="1" USE_CAIRO="0" USE_GDIPLUS=
"0" OFFICIAL_BUILD="0" VENDOR="custom" WX_FLAVOUR="" WX_LIB_FLAVOUR="" CFG="" CP
PUNIT_CFLAGS="" CPPUNIT_LIBS="" RUNTIME_LIBS="dynamic" GCC_VERSION="3" clean
DNS server not authoritative for zone.
mingw32-make.exe[1]: *** [clean] Error 1
mingw32-make.exe[1]: Leaving directory `C:/wxWidgets-2.8.12/samples'
mingw32-make.exe: *** [clean] Error 2

C:\wxWidgets-2.8.12\build\msw>

You may have better luck using the commands I used to compile it: 使用我用来编译它的命令你可能会有更好的运气:

cd C:\wxWidgets-2.8.12\build\msw
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 USE_OPENGL=1
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 USE_OPENGL=1
pause

You can see that I have not used the clean command. 你可以看到我没有使用clean命令。 I have never really needed it. 我从来没有真正需要它。 What I do is, if I want to change the compilation options, I delete the folder and re-extract it from a fresh download. 我所做的是,如果我想更改编译选项,我会删除该文件夹并从全新下载中重新提取它。 It may not be the best approach, but no clean needed! 它可能不是最好的方法,但不需要清洁!

A brief explanation of these settings: 这些设置的简要说明:

  • You should do both a build with debug and release. 您应该使用调试和发布进行构建。 The debug build will help you to debug your code, but it will produce larger (and slower) executables. 调试版本将帮助您调试代码,但它会产生更大(和更慢)的可执行文件。 The release build will produce faster and smaller executables, but without debugging options. 发布版本将生成更快,更小的可执行文件,但没有调试选项。
  • SHARED=0 indicates a static build (that is, the library will be included inside your .exe). SHARED=0表示静态构建(即,库将包含在.exe中)。 If you prefer to use separate .dll files, change it to SHARED=1 . 如果您更喜欢使用单独的.dll文件,请将其更改为SHARED=1
  • MONOLITHIC=0 indicates that the library will be divided in several components, and you will have to choose which ones to include. MONOLITHIC=0表示库将分为几个组件,您必须选择要包含的库。 Setting it to MONOLITHIC=1 will cause the library to be built as a single massive file, which you would include. 将其设置为MONOLITHIC=1将导致库被构建为单个大型文件,您将包括该文件。 That is easier, but takes longer to link. 这更容易,但链接需要更长时间。 If you choose to use MONOLITHIC=1 , you should also add the option CXXFLAGS="-fno-keep-inline-dllexport" to prevent a problem with memory (it uses too much memory when compiling the library). 如果选择使用MONOLITHIC=1 ,则还应添加选项CXXFLAGS="-fno-keep-inline-dllexport"以防止内存问题(在编译库时使用太多内存)。
  • UNICODE=1 allows you to use non-english characters in your application. UNICODE=1允许您在应用程序中使用非英语字符。 You should enable it. 你应该启用它。
  • USE_OPENGL=1 is only needed if you intend to use OpenGL. 只有在打算使用OpenGL时才需要USE_OPENGL=1 I prefer it. 我更喜欢它。

On a final note, for this to work, you should have the folder MinGW\\bin in your PATH environment variable (which I guess you already have). 最后,为了使其工作,你应该在你的PATH环境变量中有MinGW\\bin文件夹(我猜你已经有了)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM