背景:
最近在虚拟机上搭建了qt的交叉编译环境,计划后面可以用qt来开发imx6u的应用程序(没有屏幕),环境搞定之后编译了一个helloworld程序,采用的是默认的Qt Widgets Application,结果imx6u的板子运行的时候会报错(如下所示)。
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
tslib: Selected device is not a touchscreen (must support ABS event type)
解决过程:
1、尝试屏蔽界面代码
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//Widget w;
//w.show();
return a.exec();
}
在虚拟机上没问题,在imx6u上还是报上面的错。
2、删除多余文件
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9cmeNFzaUlFMWhlYwx2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0cTM0MDNzATM2IzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
只剩下工程文件和main.cpp,添加了一个qDebug打印消息,结果还是报错。
3、网上搜索报错的解决办法,尝试了几个依然无果,然后尝试修改环境变量
跟我的报错相关的环境变量应该是这个,修改为0试试。
先用export QT_QPA_FB_TSLIB=0修改环境变量,然后测试程序是否可以运行。
屏蔽了QT程序的tslib支持之后, 最后成功运行。