Sunday, 15 March 2015

Error exporting symbol when cross-compiling ICU for Windows. -



Error exporting symbol when cross-compiling ICU for Windows. -

i attempting utilize mingw-w64's 32-bit compiler (the i686-w64-mingw32 toolchain) cross-compile icu library windows. host ubuntu 12.10 64-bit.

the steps have taken this:

grab latest source code archive here , extract it.

make 2 copies of source/ directory - 1 host , 1 target.

for host build:

./configure ; make

for target build:

./configure --host=i686-w64-mingw32 --with-cross-build=<host_source_dir>

...where <host_source_dir> directory previous step.

when run make in target source directory, compilation proceeds without errors few moments , throws error:

i686-w64-mingw32-g++ -o2 -w -wall -pedantic -wpointer-arith -wwrite-strings -wno-long-long -mthreads -o ../../bin/uconv.exe uconv.o uwmsg.o -l../../lib -licuin50 -l../../lib -licuuc50 -l../../stubdata -licudt50 -lm uconvmsg/uconvmsg.a uconv.o:uconv.cpp:(.text+0x2f): undefined reference `_uconvmsg_dat'

what causing error? backed few lines , noticed this:

pkgdata: i686-w64-mingw32-gcc -o2 -wall -std=c99 -pedantic -wshadow -wpointer-arith -wmissing-prototypes -wwrite-strings -mthreads -shared -wl,-bsymbolic -wl,--enable-auto-import -wl,--out-implib=./all.lib -o ../lib/icudt50.dll ./out/tmp/icudt50l_dat.o cannot export icudt50_dat: symbol not found collect2: ld returned 1 exit status -- homecoming status = 256 error generating library file. failed command: i686-w64-mingw32-gcc -o2 -wall -std=c99 -pedantic -wshadow -wpointer-arith -wmissing-prototypes -wwrite-strings -mthreads -shared -wl,-bsymbolic -wl,--enable-auto-import -wl,--out-implib=./all.lib -o ../lib/icudt50.dll ./out/tmp/icudt50l_dat.o error generating assembly code data.

what doing wrong?

in order debug symbol problem provide flag -wl,--trace-symbol=_uconvmsg_dat i686-w64-mingw32-g++ follows:

i686-w64-mingw32-g++ -o2 -w -wall -pedantic -wpointer-arith -wwrite-strings -wno-long-long -mthreads -o ../../bin/uconv.exe uconv.o uwmsg.o -l../../lib -licuin50 -l../../lib -licuuc50 -l../../stubdata -licudt50 -lm uconvmsg/uconvmsg.a -wl,--trace-symbol=_uconvmsg_dat

windows cross-compiling icu

No comments:

Post a Comment