1. QNX开发环境搭建与项目创建
任务目标
在虚拟机中完成QNX SDP 7.0的安装与配置,建立交叉编译环境,创建Hello World项目并编译生成可执行文件,最终在QNX目标机(或QNX虚拟机)上运行验证。
环境准备
- 宿主机:Windows 10/11 或 Linux,建议8GB以上内存
- 虚拟机软件:VMware Workstation 16+ 或 VirtualBox 6.1+
- QNX SDP 7.0(Software Development Platform),需在Blackberry QNX官网申请评估版
- QNX目标机镜像:SDP安装包中自带x86_64目标镜像,可直接在虚拟机中启动
安装步骤
- 在虚拟机中安装Ubuntu 20.04 LTS(64位),分配至少4GB内存、60GB磁盘
- 将QNX SDP 7.0的ISO挂载到虚拟机,执行安装脚本:
sudo ./qnx-sdp-7.0.iso(实际为解压后运行安装程序) - 安装完成后,默认安装路径为
/opt/qnx/sdp700,设置环境变量:
export QNX_HOST=/opt/qnx/sdp700/host/linux/x86_64
export QNX_TARGET=/opt/qnx/sdp700/target/qnx7
export PATH=$QNX_HOST/usr/bin:$PATH
建议将上述内容追加到 ~/.bashrc 中以便持久生效。
验证工具链
qcc --version
# 预期输出包含 QNX C/C++ Compiler 版本信息
创建Hello World项目
在任意工作目录创建 hello.c:
#include <stdio.h>
int main(void) {
printf("Hello from QNX!\n");
return 0;
}
交叉编译
qcc -V gcc_ntox86_64 hello.c -o hello
参数说明:-V gcc_ntox86_64 指定x86_64目标架构的交叉编译器。编译完成后生成 hello 可执行文件,用 file hello 确认架构:
file hello
# 预期输出包含 ELF 64-bit LSB executable, x86-64
在目标机上运行
- 从SDP安装目录启动QNX目标虚拟机镜像:
/opt/qnx/sdp700/qnx-vm-images/x86_64/qnx700-image-x86_64.vmdk,在VMware中新建虚拟机并选择此镜像 - 启动目标机后,登录(默认用户名
root,无密码) - 查看目标机IP:
ifconfig,假设为192.168.1.100 - 在宿主机(Ubuntu开发机)上通过scp传输文件:
scp hello root@192.168.1.100:/tmp/
- 在目标机执行:
/tmp/hello
验证通过条件
- 编译阶段无错误,生成
hello文件 file hello显示目标架构为x86-64- 在目标机上执行
/tmp/hello后终端输出Hello from QNX!
常见问题
- qcc命令找不到:确认环境变量已正确设置,或重新执行
source ~/.bashrc - 编译报错无法找到头文件:确认
QNX_TARGET路径正确,且hello.c中stdio.h拼写无误 - 目标机无法启动:检查VMware虚拟机设置,确保固件类型为UEFI,网络适配器选择桥接模式
- scp连接失败:确认目标机网络已配置且与宿主机互通,可先
ping测试
至此,QNX开发环境搭建与Hello World项目创建、编译、部署、运行的完整闭环已打通,后续案例将在此环境基础上进行。