Page 1 of 1

Error Compiling wxwidgets-3.1.3 on windows10 with mingw compiler

Posted: Thu Mar 12, 2020 11:50 pm
by gismo
I'm running Window 10 Pro, 64 bit, I downloaded C::B with the Mingw32 compiler and installed C::B and the compiler, set the path for the compiler. Next I downloaded the wxWidgets-3.1.3 (1).7z and unzipped it in C:\wxwidgets-3.1.3.and used the command prompt build as follows:

Code: Select all

C:\wxWidgets-3.1.3\build\msw>mingw32-make -f makefile.gcc BUILD=release SHARED=1 UNICODE=1 
It all seems to compile till it get to the end when it attempts to build wxmsw323ud_gcc_custom.dll

Code: Select all

g++ -shared -fPIC -o ..\..\lib\gcc_dll\wxmsw313ud_gcc_custom.dll @..\..\lib\gcc_dll\wxmsw313ud_gcc_custom.dll.rsp  -g -mthreads -L..\..\lib\gcc_dll -Wl,--out-implib=..\..\lib\gcc_dll\libwxmsw31ud.a    -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      ..\..\lib\gcc_dll\libwxscintillad.a
..\..\lib\gcc_dll/libwxexpatd.a(wxexpat_xmlparse.o): In function `writeRandomBytes_rand_s':
C:\wxWidgets-3.1.3\build\msw/../../src/expat/expat/lib/xmlparse.c:758: undefined reference to `_imp__rand_s'
collect2.exe: error: ld returned 1 exit status
makefile.gcc:5329: recipe for target '..\..\lib\gcc_dll\wxmsw313ud_gcc_custom.dll' failed
mingw32-make: *** [..\..\lib\gcc_dll\wxmsw313ud_gcc_custom.dll] Error 1 
I'm a newbie and have been struggling with this for several days. I would really appreciate some help. Thanks

Re: Error Compiling wxwidgets-3.1.3 on windows10 with mingw compiler

Posted: Fri Mar 13, 2020 12:06 am
by doublemax
Which exact version of MinGW are you using?

A common problem is to have multiple different toolchains in your PATH variable. Double check this.

You can also try to make sure that the path to the compiler is set to be first:
viewtopic.php?p=197005#p197005

Also try to run the command with "clean" at the end first.

Re: Error Compiling wxwidgets-3.1.3 on windows10 with mingw compiler

Posted: Fri Mar 13, 2020 1:38 am
by stahta01
I am guessing wxWidgets expat bug likely was fixed by

Code: Select all

 expat/lib/xmlparse.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
index bb56e59..d8e1f3d 100644
--- a/expat/lib/xmlparse.c
+++ b/expat/lib/xmlparse.c
@@ -737,9 +737,11 @@ writeRandomBytes_arc4random(void *target, size_t count) {
 #ifdef _WIN32
 
 /* Provide declaration of rand_s() for MinGW-32 (not 64, which has it),
-   as it doesn't declare it in its header up to at least 5.2.2 version
-   of its runtime package (mingwrt, containing stdlib.h). */
-#  if defined(__MINGW32__) && ! defined(__MINGW64_VERSION_MAJOR)
+   as it didn't declare it in its header prior to version 5.3.0 of its
+   runtime package (mingwrt, containing stdlib.h).  The upstream fix
+   was introduced at https://osdn.net/projects/mingw/ticket/39658 . */
+#  if defined(__MINGW32__) && defined(__MINGW32_VERSION)                       \
+      && __MINGW32_VERSION < 5003000L && ! defined(__MINGW64_VERSION_MAJOR)
 __declspec(dllimport) int rand_s(unsigned int *);
 #  endif