【发布时间】:2018-01-03 17:46:31
【问题描述】:
我尝试根据 Qt 手册 (MinGW-64-bit) 使用 MinGW-w64 编译 ICU 59.1。不幸的是,我收到以下错误:
$ 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
我尝试在两台不同的计算机上编译两次:第一台 - Windows 10 Pro,最后一台 - Windows 7 Ultimate。结果是一样的。使用的工具:MSYS2 x64 (20161025)。那么,我做错了什么?
【问题讨论】:
-
MSYS2 已经有一个mingw-w64 ICU package。 MSYS2 的维护者花时间调整构建脚本并添加补丁以使其工作。你有什么理由自己编译而不是安装二进制 MSYS2 包?
-
@DavidGrayson 是的,我必须这样做,因为我需要 ICU 来编译 Qt
-
这没有多大意义。您可以使用
-no-icu禁用 Qt 的 ICU 依赖项(我自己在 nixcrpkgs 中完成了该操作)。如果你真的想要一个依赖于 ICU 的 Qt 版本,你可以使用 MSYS2 ICU 包来编译你自己的 Qt。或者你可以只使用 Qt 的 MSYS2 包而不编译任何东西。无论如何,如果你真的知道你需要从源代码编译 ICU,你可能应该使用我链接到的 PKGBUILD 脚本作为起点;它可以用makepkg-mingw构建。