2、开发环境搭建:QNX Momentics IDE的安装与配置、QNX SDK的获取、虚拟机与目标机环境搭建、SSH连接与文件传输
说实话,很多初学者在QNX上栽的第一个跟头,不是代码写不对,而是环境没搭好。我见过太多人花了一整天装IDE,结果连个Hello World都跑不起来。今天咱们就把这事彻底捋清楚。
2.1 QNX Momentics IDE的安装与配置
QNX Momentics IDE,说白了就是一套基于Eclipse的集成开发环境。它把编辑器、编译器、调试器、性能分析工具全打包在一起了。我个人习惯用7.0或7.1版本,这两个版本比较稳定。
安装步骤:
- 从QNX官网或授权渠道获取安装包(通常是
.bin文件) - 赋予执行权限:
chmod +x qnxmomentics-7.0.bin - 运行安装程序:
./qnxmomentics-7.0.bin - 选择安装路径(建议不要有中文或空格)
- 等待安装完成,大概5-10分钟
小提示:安装路径我建议放在
/opt/qnx或/usr/local/qnx下。之前有个同事装在桌面目录,结果路径里有空格,编译时各种报错,排查了半天。
配置要点:
- 启动IDE后,先设置工作空间(Workspace)路径
- 在
Window → Preferences → QNX中配置QNX SDK路径 - 检查编译器版本:
Window → Preferences → C/C++ → Build → Environment
2.2 QNX SDK的获取
QNX SDK是开发的核心。它包含了头文件、库文件、工具链和文档。获取方式主要有两种:
| 获取方式 | 适用场景 | 备注 |
|---|---|---|
| 官方下载 | 商业授权用户 | 需要注册账号,下载速度较慢 |
| 开发板配套光盘 | 购买了官方开发板 | 版本可能较旧,但兼容性好 |
| 内部FTP/共享 | 公司已有项目积累 | 注意版本一致性 |
嗯,这里要注意:SDK版本必须和你的目标机系统版本匹配。我曾经遇到过用7.0的SDK去编译7.1目标机上的程序,结果跑起来直接段错误。你想想看,这多浪费时间。
SDK目录结构:
/opt/qnx/qnx700/
├── host/ # 主机工具链
├── target/ # 目标机库和头文件
├── docs/ # 文档
└── examples/ # 示例代码
2.3 虚拟机与目标机环境搭建
做QNX开发,你至少需要两台机器:一台是开发机(装IDE),一台是目标机(跑QNX系统)。但现实中,我们往往用虚拟机来模拟目标机。
虚拟机方案(推荐新手):
- 安装VMware Workstation或VirtualBox
- 创建虚拟机,分配至少2核CPU、2GB内存
- 加载QNX系统镜像(.iso或.vmdk文件)
- 启动虚拟机,配置网络为桥接模式
注意:网络模式一定要选桥接!我之前用NAT模式,结果开发机死活ping不通虚拟机,折腾了一下午才发现是网络模式的问题。
真实硬件方案(生产环境):
- 使用x86工控板或ARM开发板(如TI AM335x、NXP i.MX系列)
- 通过串口或网口烧录QNX系统
- 配置静态IP,确保与开发机在同一网段
2.4 SSH连接与文件传输
环境搭好了,怎么把代码传过去?SSH是最常用的方式。QNX系统默认自带SSH服务,但需要手动启动。
在目标机上启动SSH服务:
# 检查SSH服务状态
slay sshd
# 启动SSH服务
sshd
# 设置开机自启(编辑/etc/rc.d/rc.local)
echo "sshd" >> /etc/rc.d/rc.local
从开发机连接目标机:
# 基本连接
ssh root@192.168.1.100
# 指定端口(如果改了默认22端口)
ssh -p 2222 root@192.168.1.100
文件传输的几种方式:
- scp(最常用):
scp hello.c root@192.168.1.100:/tmp/ - sftp(交互式):
sftp root@192.168.1.100,然后使用put/get命令 - rsync(增量同步):
rsync -avz ./project/ root@192.168.1.100:/opt/project/
我个人习惯用scp传单个文件,用rsync传整个项目。rsync有个好处——它只传变化的部分。项目大了以后,每次编译完只改了几个文件,rsync几秒钟就搞定了。
避坑指南:
- 第一次SSH连接会提示确认主机密钥,输入
yes即可 - 如果连接被拒绝,检查目标机防火墙:
iptables -L - 文件传输权限不够?用
chmod 777 /tmp临时解决(生产环境别这么干)
好了,环境搭建这块就这些。说白了,只要IDE装对了、SDK版本匹配了、网络能通,剩下的就是写代码的事了。下一章咱们开始写第一个QNX程序,到时候你就知道今天这些配置有多重要了。