3、开发环境搭建:QNX SDP安装、QNX Momentics IDE配置、目标机与宿主机连接、QNX虚拟机创建

好,咱们正式开始动手了。这一章我带你搭环境。

说实话,做嵌入式开发,环境搭不好,后面全是坑。我见过太多人卡在第一步,连个Hello World都跑不起来,就开始怀疑人生。别急,跟着我的节奏来,一步步走稳。

3.1 QNX SDP安装——别选错版本

QNX Software Development Platform,简称SDP。这是整个开发的基础。

我个人习惯,先确认目标平台的架构。你是跑在x86的工控机上?还是ARM的板子上?这个决定了你下载哪个版本的SDP。

关键点:QNX SDP 7.0 和 7.1 是目前主流版本。7.1对虚拟化支持更好,我建议直接用7.1。

安装步骤其实不复杂:

  1. 去QNX官网下载SDP安装包(需要注册账号,这个没办法)
  2. 运行安装程序,选择安装路径——路径不要有中文,不要有空格
  3. 选择你要支持的架构(x86_64、aarch64等)
  4. 等待安装完成,大概10-15分钟

注意:我曾经遇到过一个坑——安装路径选了默认的Program Files (x86),结果后面编译时各种路径解析错误。后来我统一改成 C:\qnx710,再也没出过问题。

安装完成后,检查一下环境变量。打开终端,输入:

source /opt/qnx710/qnxsdp-env.sh

然后看看能不能找到qcc编译器:

which qcc

如果返回了路径,恭喜你,第一步走通了。

3.2 QNX Momentics IDE配置——别被花哨界面迷惑

Momentics IDE,说白了就是Eclipse套了个QNX的壳。底层还是CDT那套东西。

你想想看,IDE这东西,用熟了就是利器,用不熟就是累赘。我建议你花半小时把常用快捷键记住,后面能省大量时间。

配置步骤:

  1. 启动Momentics IDE,首次启动会让你选工作空间(workspace)
  2. 工作空间路径同样不要有中文
  3. 进入后,点击 Window → Preferences → QNX → QNX Build
  4. 确认QNX SDP的路径是否正确指向你安装的位置

小技巧:我个人习惯把工作空间放在SSD上,编译速度快很多。机械硬盘编译一个大项目,那等待时间够你喝三杯咖啡。

然后配置Target Navigator:

  • 打开 QNX Target Navigator 视图
  • 右键 → New QNX Target
  • 输入目标机的IP地址(后面会讲怎么连接)
  • 选择连接方式:默认是qconn(QNX的连接守护进程)

嗯,这里要注意。qconn默认端口是8000。如果你的网络环境有防火墙,记得放行这个端口。

3.3 目标机与宿主机连接——最容易被忽视的一步

环境搭好了,IDE配好了,怎么把程序跑起来?

你需要让宿主机(你的电脑)和目标机(开发板或虚拟机)能通信。

我常用的方式有两种:

连接方式 适用场景 注意事项
以太网直连 开发板、工控机 需要静态IP,避免DHCP变化
串口连接 早期调试、无网络环境 速度慢,但稳定可靠
USB网络共享 部分开发板支持 驱动安装可能麻烦

我个人最推荐以太网直连。原因很简单——快,而且稳定。

具体操作:

  1. 在目标机上启动qconn服务:qconn &
  2. 在宿主机上ping目标机IP,确认网络通
  3. 在Momentics IDE中,右键目标机 → Connect

避坑指南:我曾经在客户现场折腾了一下午,就是连不上。最后发现是目标机的防火墙把8000端口封了。你想想看,多冤。所以第一步先检查端口通不通:telnet 目标机IP 8000

连接成功后,你会在Target Navigator里看到目标机的状态变成绿色。这时候你就可以远程调试了。

3.4 QNX虚拟机创建——没有硬件也能玩

不是每个人都有开发板。没关系,QNX官方提供了虚拟机镜像。

我刚开始学QNX虚拟化时,就是靠虚拟机练手的。说实话,虚拟机和真实硬件在开发阶段差别不大,足够你跑通大部分实验。

创建步骤:

  1. 下载QNX虚拟机镜像(.qcow2或.vmdk格式)
  2. 用VirtualBox或VMware创建新虚拟机
  3. 分配资源:建议至少2核CPU、2GB内存
  4. 启动虚拟机,登录默认账号(通常是root,无密码)

小技巧:我个人习惯给虚拟机配两个网卡。一个NAT模式用来上网,一个桥接模式用来和宿主机通信。这样既不影响你查资料,又能正常调试。

启动后,确认一下网络配置:

ifconfig
ping 宿主机IP

如果能ping通,说明网络没问题。然后启动qconn:

qconn &

回到宿主机,在Momentics IDE里添加这个虚拟机为目标机。输入虚拟机的IP地址,连接。搞定。

注意:虚拟机里的QNX默认可能没有开启SSH服务。如果你需要远程登录,记得手动启动:sshd &。我第一次用虚拟机时,以为连不上是网络问题,折腾了半天才发现是SSH没开。

3.5 验证环境——跑个Hello World试试

环境搭好了,不跑个程序验证一下,心里不踏实。

在Momentics IDE里新建一个C项目:

  • File → New → QNX C Project
  • 选择目标架构(和你安装SDP时选的架构一致)
  • 写一个简单的Hello World
  • 编译,然后右键 → Run As → QNX C/C++ Application

如果一切顺利,你会在控制台看到熟悉的"Hello World"输出。

到这里,你的开发环境就彻底搭好了。后面所有的实验,都基于这个环境。所以这一步一定要走稳,别图快。

嗯,我记得第一次在QNX上跑通Hello World时,那种感觉就像打开了新世界的大门。希望你也能体会到。

下一章,我们开始真正进入虚拟化的世界。准备好了吗?