如何编译tslib

前些天用qt4.8做的界面的字体渲染特别难看,所以准备用qt5.4做界面。X宝上买的mini2440并不随机赠送编译好了的qt5.4,所以还得自己从头编译一份。

先记录下编译tslib的过程吧。(具体原理完全不懂啊...

编译器使用了随机赠送的arm-linux-gcc-4.4.3,这里有的下

when-theory-met-practice

下面一段中的一堆变量我也不知道为什么这样定义,不过这样能够成功。其抄袭于这篇博客

$mkdir ~/tmp
$cd ~/tmp
$git clone https://github.com/kergoth/tslib.git tslib
$cd tslib
$export PATH=编译器的路径/bin:$PATH
$export CROSS_COMPILE=arm-none-linux-gnueabi-
$export CC=${CROSS_COMPILE}gcc
$export CFLAGS="-march=armv4t -mtune=arm920t"
$export CXX=${CROSS_COMPILE}"g++"
$export AR=${CROSS_COMPILE}"ar"
$export AS=${CROSS_COMPILE}"as"
$export RANLIB=${CROSS_COMPILE}"ranlib"
$export LD=${CROSS_COMPILE}"ld"
$export STRIP=${CROSS_COMPILE}"strip"
$export ac_cv_func_malloc_0_nonnull=yes
#./autogen.sh
#./configure --host=arm-linux --prefix=你要的安装路径 --enable-shared=yes --enable-static=yes
#make
#make install

另外关于$CFLAGS的设置,可以参考这里

简单来说这样就可以安装成功了,不过还是会碰见一些问题。以下将记录下我碰见的几个简单问题。

1. configure的时候,终端中会显示

checking for arm-linux-gcc… arm-none-linux-gnueabi-gcc
checking whether the C compiler works… no
configure: error: in `/usr/local/tslib':
configure: error: C compiler cannot create executables
See `config.log’ for more details

这个应该需要具体问题具体分析。看config.log文件中的输出信息应该能摸到头绪,我是因为有些依赖没有安装。

#apt-get install lib32stdc++6

安装完之后就没有问题了。

2.undefined macro错误

错误的提示信息是

configure.ac:25: error: possibly undefined macro: AC_DISABLE_STATIC
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:26: error: possibly undefined macro: AC_ENABLE_SHARED
configure.ac:27: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
configure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL

安装libtool即可

#apt-get install libtool