我试图在CentOS 5.8版(Final)上安装ICU 49。 我知道如何做的唯一方法是按源代码编译。
我做了以下几点:
./runConfigureICU Linux gmake
并在编译结束时得到以下错误:
make[2]: Leaving directory `/root/icu/icu/source/tools/toolutil' make[1]: Making `all' in `ctestfw' make[2]: Entering directory `/root/icu/icu/source/tools/ctestfw' generating dependency information for ucln_ct.c generating dependency information for uperf.cpp generating dependency information for datamap.cpp generating dependency information for testdata.cpp generating dependency information for tstdtmod.cpp generating dependency information for ctest.c make[2]: Leaving directory `/root/icu/icu/source/tools/ctestfw' make[2]: Entering directory `/root/icu/icu/source/tools/ctestfw' gcc -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o ctest.o ctest.c g++ -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o tstdtmod.o tstdtmod.cpp g++ -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o testdata.o testdata.cpp g++ -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o datamap.o datamap.cpp g++ -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o uperf.o uperf.cpp gcc -D_REENTRANT -I../../common -I../../i18n -I./../toolutil -I. -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -c -DPIC -fPIC -o ucln_ct.o ucln_ct.c g++ -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -shared -Wl,-Bsymbolic -Wl,-soname -Wl,libicutest.so.49 -o libicutest.so.49.1.2 ctest.o tstdtmod.o testdata.o datamap.o uperf.o ucln_ct.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -ldl -lm rm -f libicutest.so.49 && ln -s libicutest.so.49.1.2 libicutest.so.49 rm -f libicutest.so && ln -s libicutest.so.49.1.2 libicutest.so make[2]: Leaving directory `/root/icu/icu/source/tools/ctestfw' make[1]: Making `all' in `makeconv' make[2]: Entering directory `/root/icu/icu/source/tools/makeconv' generating dependency information for gencnvex.c generating dependency information for genmbcs.cpp generating dependency information for ucnvstat.c generating dependency information for makeconv.c make[2]: Leaving directory `/root/icu/icu/source/tools/makeconv' make[2]: Entering directory `/root/icu/icu/source/tools/makeconv' gcc -D_REENTRANT -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -c -o makeconv.o makeconv.c gcc -D_REENTRANT -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -c -o ucnvstat.o ucnvstat.c g++ -D_REENTRANT -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o genmbcs.o genmbcs.cpp gcc -D_REENTRANT -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -c -o gencnvex.o gencnvex.c g++ -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -o ../../bin/makeconv makeconv.o ucnvstat.o genmbcs.o gencnvex.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -ldl -lm ../../lib/libicuuc.so: undefined reference to `__sync_val_compare_and_swap_4' ../../lib/libicuuc.so: undefined reference to `__sync_add_and_fetch_4' ../../lib/libicuuc.so: undefined reference to `__sync_sub_and_fetch_4' collect2: ld returned 1 exit status make[2]: *** [../../bin/makeconv] Error 1 make[2]: Leaving directory `/root/icu/icu/source/tools/makeconv' make[1]: *** [all-recursive] Error 2 make[1]: Leaving directory `/root/icu/icu/source/tools' make: *** [all-recursive] Error 2
我在Google上找不到任何帮助我的东西。 我使用http://site.icu-project.org/download/49中的 icu4c-49_1_2-src.tgz
我可能会在这里稍微晚一些,但是我在32位SLES 11 SP2上遇到了构buildICU 49.1.2的完全相同的问题。
经过一些研究和下面的错误报告,我试着更新我的gcc / g ++安装。 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40134
使用gcc / g ++。46(在执行“make clean”之后),我能够构build这些库。 很明显,对于OP来说可能有点迟,但也许别人会受益。
我的build议(当我尝试并重新创build您的错误)。 别。
我在yum软件库中find了必要的库。
libicu.i386 : International Components for Unicode - libraries libicu-devel.i386 : Development files for International Components for Unicode libicu-doc.i386 : Documentation for International Components for Unicode
忽略那些是i386,只是我使用的旧服务器。
Name : libicu Arch : i386 Version : 3.6 Release : 5.16.1 Size : 13 M Repo : installed Summary : International Components for Unicode - libraries URL : http://www.ibm.com/software/globalization/icu/ License : X License Description: International Components for Unicode - libraries.
我导致相信它是在默认的Centos存储库中。 我build议你尝试searchyum的libicu。
从源代码构build时,我会去重现错误。