返回列表 发帖

tslib的交叉编译方法

本帖最后由 shiroki 于 2010-6-16 16:57 编辑

CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ ac_cv_func_malloc_0_nonnull=yes ./configure --host=arm-linux

蓝色字体部分换成你的toolchain里带的命令, 比如可能是 arm-linux-gcc之类的。
生成的库在 src/.libs目录下。
编译成功之后去该目录用下面的命令检查libts的格式是否正确:
$ file libts-0.0.so.0.1.1
应该输出:
libts-0.0.so.0.1.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped

另外还有一点, configure的时候应该加 -prefix=path_to_toolchain, 在编译完成后用make install命令就可以把编译程序/Qt时需要的tslib头文件和库都放到toolchain的合适路径里去了。

定位path_to_toolchain的方法
在toolchain安装目录里搜索比较典型的头文件, 如iconv.h, 例如得到下面的结果:
./arm-none-linux-gnueabi/libc/usr/include/iconv.h

那么向前截取到/usr/include的前面, 就得到我们要的路径:
path_to_toolchain=$PWD/arm-none-linux-gnueabi/libc/

make install之后tslib.h将被安装在与iconv.h同级的目录。

又发现了一个小问题。 tslib的安装脚本写的有问题, 默认将头文件安装在path_to_toolchain/include下, 这个路径在我的toolchain里是不算在默认搜索路径的, 导致找不到tslib.h。 如果大家也遇到这个问题就把tslib.h搬到 path_to_toolchain/usr/include下就ok了。
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

返回列表