On Thu, 2023-10-12 at 10:22 -0500, Jeremiah Benham wrote: > Richard, > I have managed to build all the dependencies of denemo in MXE for a > 32 > bit statically but am stuck compiling denemo here: > > /media/jbenham/Sandisk1/mxe/usr/bin/i686-w64-mingw32.static-ld: > /media/jbenham/Sandisk1/mxe/usr/i686-w64- > mingw32.static/lib/libtermcap.a(termcap.o):termcap.c:(.bss+0x8): > multiple definition of `PC'; > /media/jbenham/Sandisk1/mxe/usr/i686-w64- > mingw32.static/lib/libreadline.a(terminal.o):/media/jbenham/Sandisk1/ > mxe/tmp-readline-i686-w64-mingw32.static/readline-8.2/terminal.c:930: > first defined here > collect2: error: ld returned 1 exit status > make[3]: *** [Makefile:1162: denemo.exe] Error 1 > > Do you know how to resolve the multiple definitions? I could give you > the full log if you like.
It seems to be a known problem in MinGW: I found this "I got around this when building some statically linked utility programs by rebuilding Termcap with the PC variable renamed to TERMCAP_PC (there's 4 places, 2 in termcap.h and 2 in termcap.c). It doesn't seem to be used anywhere else, so it's probably safe." in a discussion about it on https://github.com/msys2/MINGW-packages/issues/8105 this same page also had a suggestion to use "LDFLAGS+=" -Wl,--allow- multiple-definition" I can't recall hearing about this sort of problem despite working at one time on huge chunks of software that were statically linked. But it was over twenty years ago ... HTH Richard > > Thanks, > Jeremiah >