PC:ubuntu14
工具链:arm-none-linux-gnueabi- 4.8.3
交叉编译QT遇到问题集锦,本人新手,问题较多。
1、configure QT的时候遇到这个问题:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR
导致这个的原因可能很多,所以需要在configure后面加上-verbose查看具体是报什么错
1)找不到编译器这里要注意的就是configure里面要更改 -xplatform qws/linux-arm-gnueabi-g++,我之前是照搬网上的-xplatform qws/linux-arm-g++
2)skipping incompatible libts.so when searching for -lts
cannot find -lts
查看tslib编译过程和tslib下面的Makefile发现libts是gcc编译的,这里就是为什么incompatible的原因,但是我之前交叉编译工具是安装好的,这里再执行:
$ export PATH=$PATH:/usr/local/arm/arm-2014.5/bin
$ export CC=arm-none-linux-gnueabi-gcc
$ export CXX=arm-none-linux-gnueabi-g++
2、undefined reference to `__sync_add_and_fetch_4'
具体原因网上有,我是交叉编译器从4.4.1直接换到最新的4.8.3,问题解决了~
3、提示找不到libts的库
lib/libQtGui.so: undefined reference to `ts_read_raw'
lib/libQtGui.so: undefined reference to `ts_open'
lib/libQtGui.so: undefined reference to `ts_fd'
lib/libQtGui.so: undefined reference to `ts_config'
lib/libQtGui.so: undefined reference to `ts_close'
lib/libQtGui.so: undefined reference to `ts_read'
修改 qt-everywhere-opensource-src-4.8.6/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
在后面加上 -lts,这里红色部分要注意的是根据自己情况修改相应文件夹下的qmake.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc -ltsQMAKE_CXX = arm-none-linux-gnueabi-g++ -ltsQMAKE_LINK = arm-none-linux-gnueabi-g++ -ltsQMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ -lts貌似上面的修改方法在后面编译非QT工程的时候有点不便,如果不做特别处理,每次会链接lts库报错,这里增加另外一种参考方法:
在qt_every_where目录下修改mkspecs/qws/common/linux.conf在QMAKE_LIBS_THREAD = -lpthread后增加-lts编程QMAKE_LIBS_THREAD = -lpthread -lts
2814

被折叠的 条评论
为什么被折叠?



