From: Erika B. <ben...@gm...> - 2014-05-30 18:31:00
|
This is both with and without using the multithreading options on mingw-make32. It is with this call executed from the build\msw subdirectory of the wxWidgets installation folder: mingw32-make -f makefile.gcc -j4 MONOLITHIC=0 SHELL=CMD.exe BUILD=debug UNICODE=1 SHARED=0 2>deberr.txt Though BUILD=release compiles and links all the libraries just fine, BUILD=debug (like above) produces a linker error: ar: gcc_mswud\corelib_ipwin.o: No such file or directory mingw32-make: *** [..\..\lib\gcc_lib\libwxmsw30ud_core.a] Error 1 mingw32-make: *** Waiting for unfinished jobs.... This is most bizarre, because makefile.gcc does not list an object file named "corelib_ipwin.o" to be linked into the wxmswu_core library. It does, however, list an object file named "corelib_tipwin.o" to be linked into the wxmsu_core library and that file does exist in both the Release and Debug compiles. For some reason, in BUILD=release, the 't' is not removed, but in BUILD=debug, the 't' is removed, producing an invalid filename. (Note, this also happens when multithreading in mingw32-make is not used.) Could this be an issue with mingw32_make or the linker? Reproducing the error: In Windows 8.1 x64, install mingw-builds 64-bit (either seh or sjlj in posix) and set the PATH variable to its bin folder. Install wxWidgets 3.0. In "[wxWidgets installation dir]\lib", if it does not already exist, create a sub-folder "gcc_lib"; in that sub-folder create the sub-folder "mswud" and in that sub-folder create "wx" ("[wxWidgets installation dir]\lib\gcc_lib\mswud\wx]" is hereafter called "[dest]"). Copy the header file "[wxWidgets installation dir]\include\wx\msw\setup.h" to "[dest]". Open up the Command Prompt and CD to "[wxWidgets installation dir]\build\msw" and then run the following command: mingw32-make -f makefile.gcc -j4 MONOLITHIC=0 SHELL=CMD.exe BUILD=debug UNICODE=1 SHARED=0 2>deberr.txt Open up deberr.txt to see the error message (along with some warnings), which for me is: ar: gcc_mswud\corelib_ipwin.o: No such file or directory mingw32-make: *** [..\..\lib\gcc_lib\libwxmsw30ud_core.a] Error 1 mingw32-make: *** Waiting for unfinished jobs.... To do the release build, create in "[wxWidgets installation dir]\lib\gcc_lib" sub-folder and in that sub-folder create the path "mswu\wx" and into "[wxWidgets installation dir]\lib\gcc_lib\mswu\wx" copy the same setup.h file as you had in "[dest]". Then open up the command prompt and CD to "[wxWidgets installation dir]\build\msw" and then run the following command: mingw32-make -f makefile.gcc -j4 MONOLITHIC=0 SHELL=CMD.exe BUILD=release UNICODE=1 SHARED=0 2>relerr.txt This build was successful for me and relerr.txt should only contain warnings. Is anyone else able to reproduce this, either partially or wholly, and if so what are the results? Is there an issue with mingw32-make or the linker that is causing this problem or is it perhaps the way the makefile was built? Anyway, I love your implementation's support of GCC 4.8.1 and therefore all of C++11. Keep up the good work! Thank you, Erika Butler |