Meson Build Failure on Windows: Undefined Reference to libiconv
I'm trying to build glib 2.60.4 against static libraries, but I am not very familiar with the meson build system. The problem occurs in the tests when trying to link to libintl.a
static library. Many libiconv symbols are not defined. I need to tell the build to link to libiconv.a
. But I am not sure how to do that with meson/ninja.
Here is the output:
[125/925] Linking target glib/tests/bookmarkfile.exe.
FAILED: glib/tests/bookmarkfile.exe
cc @glib/tests/bookmarkfile.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
[126/925] Linking target glib/tests/environment.exe.
FAILED: glib/tests/environment.exe
cc @glib/tests/environment.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
[127/925] Linking target glib/gspawn-win32-helper.exe.
FAILED: glib/gspawn-win32-helper.exe
cc @glib/gspawn-win32-helper.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
[128/925] Linking target glib/tests/bitlock.exe.
FAILED: glib/tests/bitlock.exe
cc @glib/tests/bitlock.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
[129/925] Linking target glib/tests/array-test.exe.
FAILED: glib/tests/array-test.exe
cc @glib/tests/array-test.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
[130/925] Linking target glib/gspawn-win32-helper-console.exe.
FAILED: glib/gspawn-win32-helper-console.exe
cc @glib/gspawn-win32-helper-console.exe.rsp
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x61e): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x7dc): undefined reference to `libiconv'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(dcigettext.o):(.text+0x9c3): undefined reference to `libiconv_open'
C:/Development/MSYS2/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.1.0/../../../../lib/libintl.a(relocatable.o):(.text+0x4b): undefined reference to `libiconv_set_relocation_prefix'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
I am on Windows using the MSYS2/MinGW-w64 environment. This is the command used for configuration/build:
meson \
--buildtype=plain \
--default-library=static \
-Dforce_posix_threads=true \
"../glib-2.60.4"
ninja
Edit: I tried setting option -Diconv=native
but didn't change anything.