这几天做一个项目,需要用到串口通讯。由于是QT4.2,所以没有QtSerialPort这个包,于是在网上下载了一个,桌面编译通过,但是在ARM模式下始终QT编译不过。解决方式如下:
1.先编译一个ARM版本的QT。用于编译ARM下运行的QT程序。/opt/external-toolchain/qt4.7.4 这是我的ARM-QT的目录
2.下载一个QtSerialPort,利用arm-qmake进行编译。OK 后会生成一个include的文件夹。
3.将include下的QtSerialPort文件夹复制到/opt/external-toolchain/qt4.7.4/include/QtSerialPort。PS:这步可以解决无法找到QSerialPort和QSerialPortInfo头文件的问题。
4.进入/src/QSerialPort中,拷贝如下文件libQtSerialPort.prl, libQtSerialPort.so, libQtSerialPort.so.1, libQtSerialPort.so.1.0,libQtSerialPort.so.1.0.0到/opt/external-toolchain/qt4.7.4/lib下,这是链接库的位置。
5.在.pro中添加CONFIG += serialport,必须添加到第一或者第二行。
再次编译就OK
如果想让该软件运行,则将libQtSerialPort.so, libQtSerialPort.so.1, libQtSerialPort.so.1.0,libQtSerialPort.so.1.0.0复制到开发板中对应链接库的位置。不然会提示缺少libQtSerialPort.so.1.0,从而导串口对象无法初始化。