tslib编译

来源:互联网 发布:美工岗位招聘要求 编辑:程序博客网 时间:2024/04/30 02:07
从网上下载tslib-1.4.tar.gz包,这包用于管理触摸屏,例如可用于它来校正触摸屏,并保存校正数据。

一.编译安装tslib-1.4
 将tslib-1.4 COPY到ubuntu下,在ubuntu下的终端下执行:
  #cd /tmp
  # tar zxvf tslib-1.4.tar.gz       ――――――――(最后在/tmp下解压生成tslib)
  #cd  tslib
  #./autogen.sh
  #./configure --prefix=/home/mytslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
  #make
  #make install
成功后可在/home下生成mytslib,进入mytslib可以看到有bin include lib etc四个文件夹。我们暂时先不理它,在接下来的移植过程中才用到这些文件夹。
二.编译过程中出现的问题及解决方式

问题一:执行命令 ./autogen.sh出错:./autogen.sh: autoreconf: not found
  上网查了查说是我的版本没有安装automake工具。
解决方法:
  sudo apt-get install autoconf automake libtool 这时候再次执行./autogen.sh就不出错了
question 2:configure: error: C++ compiler cannot create executables
solve:sudo apt-get install g++
问题二:在执行make的时候出现: 在函数‘open’中
    内联自‘main’于 ts_calibrate.c:227:11:
    /usr/include/i386-linux-gnu/bits/fcntl2.h:51:24: 错误:调用‘__open_missing_mode’,声明有错误属性:          open with O_CREAT in second argument needs 3 arguments 在函数‘open’>中,
    内联自‘main’于 ts_calibrate.c:229:11:
    /usr/include/i386-linux-gnu/bits/fcntl2.h:51:24: 错误:调用‘__open_missing_mode’,声明有错误属性:  open with O_CREAT in second argument needs 3 arguments  去 tests目录下打开ts_calibrate.c,修改 227和229行 
解决方法:
    gcc新版本编译器对语法检查严格,在源文件 ./tests/ts_calibrate.c中
    // 源文件
   // if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) { //     cal_fd = open (calfile, O_CREAT | O_RDWR); // } else {
   //   cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR); // }
   // 需要更改成如下形式
   if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) { cal_fd = open (calfile, O_CREAT | O_RDWR, 0777); } else {
   cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777); }

0 0