vxWorks6.8 操作系统下 QT 安装设置、运行方法
1. 前言
本文详细描述了在 vxworks6.8 操作系统下,如何安装设置 QT 的方法,给出
了详细的过程,图文并茂,并给出了在 vxsim 虚拟机和实际目标板上编译运行 QT
demo 程序的详细过程。
2. 开发环境及工具
安装前先准备以下工具
名称
Qt-vxworks-commercial-src-4.8.3.zip
MinGW5.1.6
Strawberry Perl
vxWorks6.8(workbench3.2)
Win7(64bit)
序号
1
2
3
4
5
以上工具中,StrawBerry 可从官网上下载(http://strawberryperl.com),MinGW
也可从官网上下载(http://sourceforge.net/projects/mingw/files),QT for vxworks 版
本和 vxworks6.8 要从相关渠道购买,你懂的。
备注
开发机操作系统
3. 开发环境安装配置
3.1. 安装 Workbench3.2
详见 vxworks6.8 安装手册,按说明书一步一步安装即可,不是本文重点。
3.2. 安装 MinGW
解压 MinGW,双击 MinGW-5.1.6.exe 按默认设置安装即可,建议安装在 c 盘。
3.3. 安装 Strawberry Perl
双击 strawberry-perl-5.18.1.1-32bit.exe,按默认设置安装即可,建议安
装在 c 盘。
安装后要设置环境变量。在 Path 值下添加
C:\MinGW\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\s
trawberry\perl\bin。
boy_lazy@163.com
3.4. 安装 QT4.8.3
将 Qt-vxworks-commercial-src-4.8.3.zip 解 压 , 复 制 到 windriver
workbench 目录中的 workspace 中,复制后,进行名称更改,在 vxsim 虚拟机上
测试的改为 qtsimdkm,在目标机上的改为 qtp4dkm,这样防止开发环境不同,导
致在交叉编译中引入不同的配置,造成后续 QT 程序编译错误。
设置环境变量
若在 vxsim 虚拟机下开发 QT 程序,则将环境变量的 PATH 指向 qtsimdkm 目
录下的路径,在 path 值后添加 D:\WindRiver\workspace\qtsimdkm\bin
若在目标机上开发 QT 程序,则将环境变量的 PATH 指向 qtp4dkm 目录下的路
径,在 path 值后添加 D:\WindRiver\workspace\qtp4dkm\bin
boy_lazy@163.com
注:
1、上述两个路径不要同时写上,以免出错。
4. vxsim 虚拟机上 QT 应用程序开发
4.1. 编译 windML 库
参考 windML 官方手册 Wind River Media Library SDK Programmer's Guide,
5.3,按标准步骤一步步配置、编译即可。注意此时配置选择的 CPU 要为 SIMPC。
4.2. 新建 vxWorks 镜像
以 vxsim 虚拟机为例, 在 workbench3.2 中,File->New->Vxworks Image
Project,建立一个 zvipsim 的虚拟机镜像工程。
boy_lazy@163.com
工程建立完成后,对镜像进行配置,双击 Kernel Configuration,打开镜像
的配置包界面
添加以下包
INCLUDE_WINDML
INCLUDE_POSIX_ADVISORY_FILE_LOCKING
INCLUDE_POSIX_FTRUNC
INCLUDE_POSIX_MQ
INCLUDE_POSIX_MEM
INCLUDE_POSIX_SCHED
INCLUDE_POSIX_SEM
INCLUDE_POSIX_PTHREADS
INCLUDE_POSIX_PTHREAD_SCHEDULER
NUM_FILES=200
RTP_FD_NUM_MAX=200
INCLUDE_MMAP (注:vxworks6.8 中无此包)
INCLUDE_POSIX_MAPPED_FILES
INCLUDE_HRFS
INCLUDE_HRFS_FORMAT
HRFS_DEFAULT_MAX_BUFFER=1024
HRFS_DEFAULT_MAX_FILES=200
boy_lazy@163.com
INCLUDE_XBD_RAMDRV
INCLUDE_XBD_PART_LIB
之后工程中的 usrAppInit.c 文件中添加以下代码,在系统启动时创建 RAM
/* for backwards compatibility */
disk
/*for QT */
#include "stdio.h"
#include "hrFsLib.h"
#include "xbdPartition.h"
#include "xbdRamDisk.h"
#define DEVNAME "/tmpram" /*name of the RAM disk*/
#define BLOCKSIZE 512
#define DISKSIZE (BLOCKSIZE * 10000)
/*end of QT */
void usrAppInit (void) {
#ifdef USER_APPL_INIT
USER_APPL_INIT;
#endif
/* add application specific code here */
/*for QT -----------------*/
STATUS error;
device_t xbd;
xbd = xbdRamDiskDevCreate(BLOCKSIZE,DISKSIZE,0,DEVNAME);
if(xbd == NULLDEV)
}
printf(" RAM disk created OK\n");
error= hrfsFormat(DEVNAME,DISKSIZE,BLOCKSIZE,1000);
if(error != OK) {
}
printf("RAM create and format OK\n");
/*end of QT ---------------------*/
}
{
printf("**Failed to create RAM disk\n");
return ;
printf("**failed to format RAM disk, errno=0x%0x\n",error);
return ;
完成以上工作,编译镜像,编译成功后用 vxworks6.8 development shell,进入 zvipsim/default
目录,运行 vxsim –size 800M,启动虚拟机,如下图所示。
boy_lazy@163.com
4.3. 配置 QT
在 vxworks6.8 development shell,进入到 qtsimdkm 目录,执行 configure,具
体 configure 配置内容如下
configure
-confirm-license
-embedded
-xplatform
qws/vxworks-simdkm-g++ -exceptions -qt-freetype -qt-zlib -qt-libpng -qt-libtiff -qt-
libjpeg -qt-libmng -no-qt3support -no-openssl -nomake examples -nomake docs -
nomake translations -no-script -no-webkit -prefix /tmp/qtsimdkm -static -release -D
QT_QWS_TEMP_DIR=\\\\\\\"/tmpram\\\\\\\" -make make
-platform win32-g++
上述配置内容中的加粗黑色字体要根据不同的开发环境进行修改。以上是
vxsim 虚拟机的配置,若是 x86 平台的目标机,则要改为-xplatform qws/vxworks-
Pentium4dkm-g++,-prefix /ata0a/tmp/qtp4dkm
configure 配置命令及配置结果界面如下:
boy_lazy@163.com
Configure 配置命令执行完后,会在 qtsimskd 目录下生成 makefile 文件。之后
进行 make 操作。
在启动->搜索里输入 cmd, 进入 workspace\qtsimskd 目录,输入 make 命令进
行编译,约要十到二十分钟时间。
Make 编译成功后,需将 workspace\qtsimdkm\lib 下面所有内容复制到
c:\tmp\qtsimdkm\lib。如果是目标环境中,则将编译的 lib 复制到目标机硬盘
/ata0a/tmp/qtp4dkm/lib 下。
4.4. 编译、运行 QT 程序
在 vxworks Development shell 中,进入 qtsimdkm\demos\affine 中,运行 make,
编译 affine 程序,生成可执行的 affine
编译成功后提示如下
boy_lazy@163.com
运行 qt 程序。
将刚编译出来的 qtsimdkm\demos\affine\affine 文件复制到虚拟机镜像所在
目录 workspace\zvipsim\default,
在 vxworks Development shell 中 , 进 入 vxsim 文 件 所 在 目 标
workspace\zvipsim\default,执行 vxsim –size 800M,启动虚拟机
在 vxsim0 中,输入 ld