在Qt Creator中编译和运行
在Qt Creator工作界面中点击“运行”按钮,工程开始编译和运行,方法1和方法2所编写的工程文件运行结果如图7.17(a)和(b)所示。
(a)
(b)
图7.17 hello工程运行界面
交叉编译编译hello工程
若要能够在Cortex-A8嵌入式智能终端硬件平台上运行hello程序,还需要在宿主机上对hello工程进行交叉编译。在Linux终端窗口中进入由Qt Creator创建的hello工程文件夹。
[root@localhost Desktop]# cd /jy-cbt/work/qtwork/hello/
[root@localhost hello]# ls
hello
main.o
mainwindow.ui ui_mainwindow.h
hello.pro mainwindow.cpp Makefile
hello.pro.user mainwindow.h moc_mainwindow.cpp
main.cpp mainwindow.o
moc_mainwindow.o
[root@localhost hello]#
为了能够使用交叉编译器进行编译并取得正确结果,此时需要清除使用Qt Creator编译生成的过程文件。
[root@localhost hello]# ls
hello.pro
main.cpp mainwindow.h mainwindow.ui
moc_mainwindow.cpp
hello.pro.user
mainwindow.cpp ui_mainwindow.h
[root@localhost hello]#
1.qmake
在当前路径下使用QtEmbedded编译环境的qmake命令生成Makefile文件,此时需要输入qmake存放位置的绝对路径。
[root@localhost hello]#
/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin/qmake
[root@localhost hello]#
2.make
在当前路径下使用make命令编译hello工程,生成ARM板的可执行文件hello
[root@localhost hello]# make
下载和运行hello工程
1.复制hello文件
在宿主机环境下,将hello文件复制到/tftpboot/共享文件夹下,设置并确认宿主机iP为192.168.1.103。
2.下载hello文件
在目标机使用tftp方式将宿主机共享目录下的hello文件下载到Cortex-A8嵌入式智能终端。
[root@Cyb-Bot /]# tftp
-gr hello 192.168.1.103
Hello 100%
|*******************************| 27136 --:--:-- ETA
[root@Cyb-Bot /]#
3.设置环境变量(ARM 端)
在目标机中运行QT应用程序之前,需要设置目标机运行QT应用程序的环境变量。参见上一个例子。
4.运行hello
(1)在目标机中修改hello应用程序权限。在目标机的控制台中使用chmod命令修改可执行文件的运行权限。
[root@Cyb-Bot /]# chmod
+x hello
(2)运行hello程序。在目标机控制台中执行以下命令,运行QT可执行文件。
[root@Cyb-Bot /]# ./hello –qws
在运行结果如图7.18所示。
图7.18 hello工程运行结果