虚拟机远程连接编译部署QT程序
概要
逻辑
我们需要凑齐
QT库、交叉编译工具、sysroot这三大件。
交叉编译的程序是部署到板卡环境运行,需要构建和板卡一样的库环境。
sysroot是我们在虚拟机上自己命名的一个文件夹,包含开发板的运行系统所需的所有文件。
虚拟机是x64版本,开发板是arm64版本。
如果开发板直接用交叉编译工具,使用qt库,编译得到可执行文件,在开发板上会得到
relocation error: ./analogclock: symbol _ZTVN10__cxxabiv120__si_class_type_
,infoE version Qt_5 not defined....
错误。因为可执行文件运行时,运行的是arm版本的qt库。
需要通过
LD_LIBRARY_PATH=pc上交叉编译后放到板子上的qt库
LD_LIBRARY_PATH=/opt/qt-everywhere-src-5.15.8/ext/lib ./analogclock -
,platform xcb
来指定链接的库。