第2章 开发环境搭建:QNX Momentics IDE安装、QNX SDK配置、目标机与宿主机连接、SSH与网络配置
说实话,搭建开发环境这件事,看着简单,但坑不少。我见过太多新手卡在这一步,折腾一整天连个Hello World都跑不起来。今天我就把这几年的经验捋一捋,带你一次搞定。
2.1 QNX Momentics IDE安装
QNX Momentics IDE,说白了就是基于Eclipse的一套集成开发环境。QNX官方把它打包好了,我们直接装就行。
下载前要注意版本匹配
我个人习惯用QNX 7.0或7.1版本。为什么?因为这两个版本最稳定,社区资源也多。你想想看,如果选了个太新的版本,网上连个报错信息都搜不到,那多难受。
安装步骤其实很简单:
- 从QNX官网下载Momentics IDE安装包(大约2-3GB)
- 双击运行安装程序,选择安装路径
- 一路Next,直到完成
安装完成后,启动IDE。第一次启动会要求你选择工作空间(Workspace)。我建议单独建一个目录,比如D:\qnx_workspace,别跟系统盘混在一起。
2.2 QNX SDK配置
SDK配置是重头戏。很多人装完IDE就以为完事了,结果一编译就报错——找不到头文件、找不到库文件。嗯,这里要注意,SDK必须手动配置。
第一步:安装SDK
SDK通常是一个.qnx7后缀的文件。双击它,会弹出安装向导。选择安装路径时,我建议和IDE放在同一个盘符下,方便管理。
第二步:配置环境变量
安装完成后,需要设置QNX_TARGET和QNX_HOST这两个环境变量。举个例子:
# 假设SDK安装在 C:\QNX700
QNX_TARGET=C:\QNX700\target\qnx7
QNX_HOST=C:\QNX700\host\win64\x86_64
为什么要设这两个变量?因为编译器、链接器、头文件路径都靠它们来定位。我曾经遇到一个项目,同事没设环境变量,结果每次编译都要手动指定路径,那叫一个痛苦。
第三步:在IDE中配置SDK
打开Momentics IDE,点击菜单栏:
Window→Preferences- 找到
QNX→QNX SDKs - 点击
Add,选择SDK安装目录 - 确认后,IDE会自动识别SDK版本
2.3 目标机与宿主机连接
QNX开发通常是交叉编译——在宿主机(你的PC)上写代码,编译成目标机(比如ARM板子)能运行的二进制文件。那问题来了:怎么把编译好的程序传到目标机上?
连接方式有两种:
| 方式 | 优点 | 缺点 |
|---|---|---|
| 串口 | 简单可靠,适合调试内核 | 速度慢,不适合传大文件 |
| 以太网 | 速度快,支持SSH和FTP | 需要配置网络 |
我个人更推荐以太网方式。为什么?因为开发过程中要频繁传文件,串口那速度能急死人。我记得有一次用串口传一个10MB的驱动文件,等了快两分钟,从那以后我就再也没用过串口传文件了。
硬件连接步骤:
- 用网线连接目标机和宿主机(或者通过交换机)
- 给目标机上电,确认启动正常
- 在宿主机上打开命令行,ping一下目标机的IP地址
如果ping不通,别慌。先检查网线,再检查IP地址是否在同一网段。我遇到过最奇葩的一次,是目标机的网口灯亮着,但就是ping不通,最后发现是网线质量太差,换了一根就好了。
2.4 SSH与网络配置
SSH是连接宿主机和目标机的核心工具。QNX系统默认带了SSH服务,但需要手动启动。
在目标机上启动SSH服务:
# 启动SSH服务
sshd
# 查看SSH服务状态
ps -ef | grep sshd
# 设置开机自启
echo "sshd" >> /etc/rc.d/rc.local
配置静态IP地址:
开发环境里,我建议用静态IP,别用DHCP。为什么?因为DHCP分配的IP会变,你每次都要重新查IP,太麻烦了。
# 查看当前网络接口
ifconfig
# 设置静态IP(以en0为例)
ifconfig en0 192.168.1.100 netmask 255.255.255.0 up
# 设置默认网关
route add default 192.168.1.1
宿主机连接目标机:
配置好网络后,在宿主机上打开终端,输入:
ssh root@192.168.1.100
第一次连接会提示确认主机密钥,输入yes即可。然后输入密码(默认通常是空密码或root)。
连接成功后,你就可以在宿主机上远程操作目标机了。传文件用scp命令:
# 从宿主机传文件到目标机
scp my_driver.so root@192.168.1.100:/tmp/
# 从目标机下载文件到宿主机
scp root@192.168.1.100:/tmp/log.txt ./
2.5 验证环境是否搭建成功
环境搭没搭好,跑个Hello World就知道了。在IDE中新建一个QNX C项目,写个简单的程序:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
printf("Hello QNX World!\n");
return EXIT_SUCCESS;
}
编译后,把生成的可执行文件传到目标机上,运行看看。如果打印出"Hello QNX World!",恭喜你,环境搭建成功了!
总结一下今天的重点:
- 安装IDE时注意路径不要有中文和空格
- SDK配置要设置环境变量,并在IDE中指定SDK路径
- 宿主机和目标机用以太网连接,配置静态IP
- SSH是远程操作的主要工具,学会用scp传文件
环境搭建是开发的第一步,也是最容易出问题的一步。别怕踩坑,每个坑都是经验。下一章我们开始讲QNX驱动框架,那才是真正的重头戏。