cross comple to arm - KerwinKoo/KerwinKoo.github.io GitHub Wiki
#!/bin/sh ./configure -v -prefix /opt/Qt5.4.0_arm/5.4/Src/_install -release -make libs -xplatform linux-arm-gnueabi-g++ -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -no-opengl -no-sse2 -no-nis -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -I /usr/local/tslib/include -L /usr/local/tslib/lib
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
解决方案:
重新下载一个libiconv-1.14
./configure --prefix=$PWD/out --host=arm-none-linux-gnueabi
make
make install然后把out/lib/preloadable_libiconv.so拷贝到板子的/lib,并在板子的文件系统增加一个环境变量
export LD_PRELOAD=/lib/preloadable_libiconv.so
编译过程可能还有个错误:
修改libiconv-1.14的文件: srclib/stdio.in.h
./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)
用下面的这个补丁:
--- srclib/stdio.in.h.orig 2011-08-07 16:42:06.000000000 +0300
+++ srclib/stdio.in.h 2013-01-10 15:53:03.000000000 +0200
@@ -695,7 +695,9 @@
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
#endif