From: Filipe D. M. <fdm...@ap...> - 2013-02-17 15:56:42
|
Hello, I'm trying to build and use ICU on Windows 7 64bits with msys + mingw-w64. I'm able to build ICU successfully like this: fdmanana@fdmanana-win ~/tmp$ tar zxf icu4c-50_1_2-src.tgz fdmanana@fdmanana-win ~/tmp$ cd icu/source/ fdmanana@fdmanana-win ~/tmp/icu/source$ ./runConfigureICU MinGW && make install This commands terminates successfully, installing icu-config into /usr/local/bin/. However when I try to run icu-config, I get: fdmanana@fdmanana-win ~$ /usr/local/bin/icu-config --ldflags ### icu-config: Can't find /usr/local/lib/libicuuc.dll - ICU prefix is wrong. ### Try the --prefix= option ### or --detect-prefix ### (If you want to disable this check, use the --noverify option) ### icu-config: Exitting. Looking at /usr/local/lib/, I noticed I have a file named icuuc.dll and not libicuuc.dll, so I copied the former into libicuuc.dll fdmanana@fdmanana-win ~$ cp /usr/local/lib/icuuc.dll /usr/local/lib/libicuuc.dll After this, icu-config works. But using it with --ldflags, it gives me ld flags that refer to 2 library files (cui18n and icudata) that were not built: fdmanana@fdmanana-win ~$ /usr/local/bin/icu-config --ldflags -L/local64/lib -lpthread -lm -L/usr/local/lib -licui18n -licuuc -licudata -lpthread -lm fdmanana@fdmanana-win ~$ fdmanana@fdmanana-win ~$ ls /usr/local/lib/ icu icuin.dll icuio.lib icule50.dll icutest.dll icutu.lib icuuc50.dll pkgconfig icudt.dll icuin.lib icuio50.dll iculx.dll icutest.lib icutu50.dll libicuuc.dll icudt.lib icuin50.dll icule.dll iculx.lib icutest50.dll icuuc.dll libsnappy.a icudt50.dll icuio.dll icule.lib iculx50.dll icutu.dll icuuc.lib libsnappy.la fdmanana@fdmanana-win ~$ fdmanana@fdmanana-win ~$ find /usr -name '*icui18n*' fdmanana@fdmanana-win ~$ find /usr -name '*icuuc*' /usr/local/lib/icuuc.dll /usr/local/lib/icuuc.lib /usr/local/lib/icuuc50.dll /usr/local/lib/libicuuc.dll fdmanana@fdmanana-win ~$ find /usr -name '*icudata*' /usr/local/include/unicode/icudataver.h fdmanana@fdmanana-win ~$ On a Linux system (icu 4.8.1.1), I surely have icui18n and icudata (as /usr/lib/libicui18n.{a,so} and /usr/lib/libicudata.{a,so}). I have no idea why the Windows/MinGW build didn't produce these 2 libraries, as they should exist according to icu-config --ldflags Some environment details: fdmanana@fdmanana-win ~$ uname -a MINGW32_NT-6.1 FDMANANA-WIN 1.0.18(0.48/3/2) 2012-11-21 22:34 i686 Msys fdmanana@fdmanana-win ~$ gcc --version gcc.exe (rubenvb-4.7.0) 4.7.0 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. fdmanana@fdmanana-win ~$ g++ --version g++.exe (rubenvb-4.7.0) 4.7.0 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. fdmanana@fdmanana-win ~$ ld --version GNU ld (rubenvb-4.7.0) 2.22.52.20120429 Copyright 2012 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. fdmanana@fdmanana-win ~$ What am I doing wrong? thank you -- Filipe David Manana, "Reasonable men adapt themselves to the world. Unreasonable men adapt the world to themselves. That's why all progress depends on unreasonable men." |