嵌入式linux开发,交叉编译tslib时报错:libtoolize: $pkgltdldir not a directory: `/home/xteda/am335xt3/linux-devkit/

一、问题描述。

Ubuntu下对tslib源码进行交叉编译出现报错,如下:

ms@ubuntu:~/.../tslib$ ./tslib.sh
libtoolize: $pkgltdldir not a directory: `/home/xteda/am335xt3/linux-devkit/share/libtool'
autoreconf: libtoolize failed with exit status: 1
./tslib.sh: 6: ./tslib.sh: ./configure: not found
make: *** No targets specified and no makefile found.  Stop.
make: Nothing to be done for `install'.
ms@ubuntu:~/.../tslib$ 

二、问题分析。

交叉编译器不匹配问题。编译内核的时候搞用了一个编译器,编译qt的时候又用了另一个交叉编译工具,存在两套编译工具。一个是TI官方提供的编译器  cross-tools-am335x-4.5.3.tar.bz2,用于编译Uboot和Kernel;另一个是专用于编译Qt库的编译器 arm-2009q3.tar.bz2,如果您编译Qt程序或者是Qt库文件,建议使用专门应用于Qt编译的编译器 arm-2009q3.tar.bz2。

三、解决方案。

1、方案一(网上搜寻,未验证):在系统目录中创建 ti-sdk-am335x-evm 文件夹,将linux-devkit 放到这个文件夹中。

mkdir ti-sdk-am335x-evm
cp -rf ./linux-devkit ti-sdk-am335x-evm/
./configure CC=arm-linux-gcc-4.3.5 --build=i686-pc-linux --target=arm-linux --prefix=/opt/tslib-1.3 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --enable-inputapi=yes
CC=arm-linux-gcc-4.3.5 ./configure --prefix=/opt/tslib-1.3 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes

修改./config.h 将文件中的 #define malloc rpl_malloc 这句话屏蔽。

gedit ./config.h
make
make install

2、方案二:更换交叉编译工具,使用arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,问题得到解决,编译成功。(此交叉编译工具支持c++11)

附:

--host指定目标机的平台类型。一般格式为CPU类型-操作系统名称。比如,目标机的CPU为arm,操作系统为linux,可以写为--host=arm-linux。

--prefix这是安装路径的前缀,即编译结果放置的位置。默认值是/usr或者/usr/local,交叉编译时不能使用默认值,否则它会覆盖你本机的文件,所以要指定一个路径。比如,可以指定为--prefix=/work/cross/rootfs/usr。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寞水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值