2017-07-27 337 views
0

我试图根据Qt手册(MinGW-64-bit)使用MinGW-w64编译ICU 59.1。不幸的是,我得到了以下错误:在Windows上使用MinGW-w64编译ICU的问题

$ make && make install 
rebuilding config/icucross.mk 
rebuilding config/icucross.inc 
cd ./config; \ 
     make -f pkgdataMakefile 
make[1]: вход в каталог «/c/Qt-deps/icu-59_1/source/config» 


*** ERROR - configure could not detect your platform 
*** see the readme.html 
*** or, try copying icu/source/config/mh-linux to mh-unknown 
*** and editing it. 


exit 1 
rm -rf pkgdata.inc 
make[1]: выход из каталога «/c/Qt-deps/icu-59_1/source/config» 
rm -rf config/icu-config 
/usr/bin/install -c ./config/icu-config-top config/icu-config 
chmod u+w config/icu-config 
LC_ALL=C /usr/bin/sed -f ./config/make2sh.sed < ./config/Makefile.inc | grep -v '#M#' | uniq >> config/icu-config 
LC_ALL=C /usr/bin/sed -f ./config/make2sh.sed < ./config/mh-unknown | grep -v '#M#' | uniq >> config/icu-config 
cat ./config/icu-config-bottom >> config/icu-config 
chmod u-w config/icu-config 
config/icu-uc.pc updated. 
config/icu-i18n.pc updated. 
config/icu-io.pc updated. 
Note: rebuild with "make VERBOSE=1 " to show all compiler parameters. 
/bin/sh ./mkinstalldirs lib 
mkdir lib 
/bin/sh ./mkinstalldirs bin 
mkdir bin 
make[0]: Making `all' in `stubdata' 
make[1]: вход в каталог «/c/Qt-deps/icu-59_1/source/stubdata» 


*** ERROR - configure could not detect your platform 
*** see the readme.html 
*** or, try copying icu/source/config/mh-linux to mh-unknown 
*** and editing it. 


exit 1 
make[1]: выход из каталога «/c/Qt-deps/icu-59_1/source/stubdata» 
make: *** [Makefile:147: all-recursive] Ошибка 2 

我试图编译它两次在两个不同的计算机:第一个1 - 10的Windows临,最后一个 - Windows 7旗舰版。结果是一样的。使用的工具:MSYS2 x64(20161025)。那么,我做错了什么?

+0

有已经是MSYS2的[mingw-w64 ICU包](https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-icu)。 MSYS2的维护人员已经花时间调整构建脚本并添加了修补程序以使其工作。是否有任何理由让你自己编译而不是仅仅安装二进制MSYS2包? –

+0

@DavidGrayson是的,我必须这样做,因为我需要ICU编译Qt – Eugene

+0

这没有多大意义。你可以禁用Qt与'-no-icu'(我在[nixcrpkgs](https://github.com/DavidEGrayson/nixcrpkgs)中自己完成的)ICU依赖项。如果你真的想要一个依赖于ICU的Qt版本,你可以使用MSYS2 ICU软件包来编译你自己的Qt。或者你可以使用Qt的MSYS2软件包,而不是编译任何东西。无论如何,如果你确实知道你需要从源代码编译ICU,你应该使用我链接的PKGBUILD脚本作为起点;它可以用'makepkg-mingw'构建。 –

回答

0

错误“配置无法检测到您的平台”可能可以通过将参数--build=$MINGW_CHOST --host=$MINGW_CHOST传递给配置脚本来解决。如果你是在正确的类型MSYS2外壳,$MINGW_CHOSTi686-w64-mingw32x86_64-w64-mingw32

对于建设ICU更多有用的技巧,看看构建脚本的MSYS2开发人员制作:

https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-icu