一、添加交叉编译工具链开发套件
开发的Qt程序需要经过交叉编译工具链编译后,才可以在IMX6ULL开发板的Linux ARM平台上运行。QT Creator交叉编译工具链的设置界面位于的“Tools”->“Options”->“Build & Run”,需要在Compilers、Debuggers、QtVersions和Kits四配置中添加对应的文件。
1、添加Compilers
添加gcc
在界面的右侧点击Add->GCC->C,添加一个GCC编译器。
选中新添加的GCC编译器,然后点击下方的“Browse”按键开启文件资源浏览器;
进入交叉编译器的路径“/opt/industio/imx6ull_qt4.8.7_sdk_hf/bin/”,选中gcc编译工具“arm-linux-gnueabihf-gcc”。
将GCC的名字修改为“imx6ull-hf-GCC”,点击“Apply”按键生效设置。添加g++
参照gcc的添加方法,添加g++交叉编译工具,文件路径为“/opt/industio/imx6ull_qt4.8.7_sdk_hf/bin/arm-linux-gnueabihf-g++”,并将名字修改为“imx6ull-hf-G++”,点击“Apply”按键生效设置。
2、添加Debuggers
在Debuggers栏点击“Add”按键新增一个Debugger,选择“/opt/industio/imx6ull_qt4.8.7_sdk_hf/bin/arm-linux-gnueabihf-gdb”,并修改名字为“imx6ull-hf-Debugger”,点击“Apply”按键生效设置。
3、添加Qt Versions
在Qt Versions栏点击“add”打开文件资源浏览器,选择“/opt/industio/imx6ull_qt4.8.7_sdk_hf/bin/qmake”,点击“Apply”按键生效设置。
4、添加Kits
在Kits栏,点击“Add”按键添加一个kit,并修改名字为“imx6ull-hf-Qt4.8.7”,选择Compiler C: imx6ull-hf-GCC;Compiler C++: imx6ull-hf-G++;Qt Version :“Qt 4.8.7(imx6ull_qt4.8.7_sdk_hf)”,最后点击“Apply”生效配置。
5、验证Qt Creator交叉编译器配置
点击Qt Creator软件的“File->New File or Project”,新建一个“Qt widget Application”工程。
在“Kit Selection”界面,选择添加的“Imx6ull-hf-Qt4.8.7”kit。
在Qt Creator左侧选择“imx6ull-hf-Qt4.8.7->Release”
点击”Build”🔨按键编译;
正常编译完,在新建工程的“/home/industio_work/Qt/project/”目录下,产生一个“build-test_toolchain-imx6ull_hf_Qt4_8_7-Release”文件夹,文件夹中包含编译的中间文件和开发板上运行的可执行文件“test_toolchain”。在开发板上运行Qt程序
使用U盘或者TF卡将编译得到的可执行文件“test_toolchain”拷贝到开发板中,在开发板终端切换至可执行文件的目录,执行./test_toolchain -qws
,即可在屏幕上显示Qt程序界面。
二、Qt Creator添加远程调试设备
使用交叉编译工具链的kit编译出的可执行程序只能运行于Linux ARM平台,如果需要在PC端调试和运行Qt工程则需要使用PC端的kit。
Qt程序开发过程中,大部分平台无关的逻辑代码可以直接使用PC端的kit编译和调试;如果要下载到开发板上验证Qt程序,则需要使用交叉编译工具链编译Qt程序,获得可执行文件后拷贝至开发板中运行调试。为了简化调试过程中繁琐的拷贝和手动执行过程,可以在Qt Creator中配置一个远程目标设备,通过网络连接到设备调试Qt程序。
配置目标设备前,首先需要确认虚拟机和开发板之间网络可以相互ping通。本教程的网络连接环境如下:
虚拟机和开发板处于同一个局域网的同一个网段内,虚拟机的IP地址为:192.168.0.70,开发板的IP地址为:192.168.0.19。
修改kit“imx6ull-hf-Qt4.8.7”,选择Device type为“Generic Linux Device”,点击Device的右边的“Manage..”按键,进入Devices的添加界面。
在Devices中,点击右边的“Add…”按键,在弹出的设备配置窗口中选择设备类型为“Generic Linux Device”,然后点击“Start Wizard”进入设备配置界面。
在配置界面,设置设备名、IP地址“192.168.0.19”、登录账号“root”、登陆方式选择“Password”、输入root密码“wise-kit”,点击“Next”按键进入下一步;
在提示界面点击“Finish”开始测试设备连接。
如果配置信息无误,开发板和虚拟机之间的网络连接正常,则测试界面如下,点击“Close”按键关闭测试界面。
点击“Apply”按键生效配置。
切换回“Build & Run”,查看“imx6ull-hf-Qt4.8.7”的kit中的Device已经添加了新设备“imx6ull Generic Linux Device”。
修改工程的pro文件,在文件最后添加可执行文件运行路径。
target.path += /root INSTALLS += target
点击Qt Creator左侧的Projects按键,选择“imx6ull-hf-Qt4.8.7”kit的“Run”,再“Run Setting”界面设置“test_toolchain”工程的运行的模式为”Deploy to Remote Linux Host“,运行参数为“-qws”。
修改工程界面,再界面上添加一个Label控件,添加文本。
选择“imx6ull-hf-Qt4.8.7”kit,点击“Run”按键,将程序下载至开发板中运行。
开发板中的运行效果如下:选择底部“Application Output”,点击test_toolchain(on Remote Device)的关闭按键“X”,在弹出的提示框中,点击“Force Quit”即可关闭开发板运行的Qt程序线程。