第一个QNX程序
来源:互联网 发布:淘宝详情页打不开 编辑:程序博客网 时间:2024/06/14 09:38
锋影
e-mail:174176320@qq.com
QNX开发环境和QNX虚拟机都搭建好了,开始写第一个QNX程序。
关于QNX程序开发的最好参考是QNX官网上的pdf书《10 Steps to Developing a QNX Program: Quickstart Guide 》,清晰地说明了如何通过十个步骤开发第一个QNX应用程序。有好心人将它翻译成中文,中文名叫《10步开发一个QNX程序》。《10步开发一个QNX程序》一贴可以轻松地从网上搜索到,而英文的《10 Steps to Developing a QNX Program: Quickstart Guide 》一书可以从QNX官网上下载,再次共享一下QNX官网下载资料的地址:
http://www.qnx.com/download/group.html?programid=20945
因为以上两份资料已经很详细的说明了QNX程序的开发过程,下面就简单说明一下步骤:
环境准备:
1. QNX Neutrino 虚拟机
2. QNX Momentics 开发环境
关于以上环境的准备可以参考之前的博文。
关键步骤:
1. 创建、编译QNX C项目
1.1 在QNX Momentics环境中选择 “File -> new -> QNX C project”。
1.2 在项目创建向导的第一页填写项目名称
1.3 在项目创建向导的第二页选择X86为目标系统,因为我们使用的QNX虚拟机是VMware上运行的系统,使用X86体系的CPU。
1.4 点击“finish”按钮创建项目,创建项目后出现程序编辑界面,如下图:
1.5 编译项目,在左边导航栏中选择项目,点击右键,选择“Build Project”
2. 准备运行环境并调试应用
2.1 获取目标系统的IP,首先启动QNX Neutrino虚拟机,在QNX Neutrino系统中启动terminal窗口,在窗口中使用ifconfig获取目标系统的IP地址。如下图获得的IP是:192.168.201.128。
2.2 启动qconn程序,获取IP地址后同样在terminal窗口中使用qconn命令启动qconn程序。注意qconn程序运行后如果不出错的话没有任何输出,习惯DOS系统中命令运行成功会有提示的同学们需要习惯一下,运行界面如下图:
2.3 在Momentics中配置目标系统。 在Momentics环境中选择项目,点击右键,选择“Rus As -> Run Configuration”, 会出先目标系统配置界面,如下图。在配置界面左边的导航栏中选择“c/c++ QNX QConn(ip)”,点击左上方的“新建”图标,出现目标环境配置界面,需要配置的有:
2.3.1 名称,可以随便取个名字
2.3.2 项目,点击项目栏旁边的“Browse...”按钮,选择你希望调试的应用
2.3.3 应用,选择项目后点击“Search Project...”可以选择指定项目中可以运行的程序,如果之前编译成功的话,会出现两个同名的应用供选择,一个结尾带个g字,一个不带g字。带g字的是带有调试信息的,所以我选择了带g字的。
2.3.4 目标系统,点击目标系统栏右边的“Add New Target...”按钮,会出现目标系统配置界面,填写上一步获取的IP地址即可。
2.4 运行应用,上一步配置完成后,点击“Apply”按钮应用配置,再点击“Run”按钮运行程序,运行结果如下,注意printf输出的内容在Momentics的Console界面中显示出来:
![](http://hi.csdn.net/attachment/201109/7/0_1315381419RJ8u.gif)
- 第一个QNX程序
- 第一个QNX程序
- 第一个QNX程序
- 第一个QNX图形程序
- 第一个BeagleBoard上的QNX程序
- 第一个QNX程序(Run)
- 十步开发第一个QNX Neutrino 程序
- 十步开发第一个QNX Neutrino 程序
- 第一份qnx代码
- QNX编写程序-QNX程序例子
- 第一个C++程序
- 第一个MIDP程序
- 第一个Swing程序
- 第一个Ruby程序
- 第一个Python程序
- 第一个RoR程序
- 第一个RMI程序!
- VBA 第一个程序
- 解析XML可扩展性文档的方法
- Java web学习遇到的几个面试题
- c# 解决读取Excel混合文本类型,数据读取失败的解决方法
- 2017-8-12 Struts2学习笔记三
- opencv 高斯混合模型BackgroundSubtractorMOG2实现目标跟踪
- 第一个QNX程序
- Android基于Window.ID_ANDROID_CONTENT给定id添加子View
- 从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
- Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.5 HQL:DDL数据定义)(草稿)
- java 中的对象和对象引用
- Python3之异常处理
- BlockingQueue的各种实现队列
- 【背包问题】背包问题之0-1背包、完全背包、多重背包
- 【JSOI2008】Blue Mary开公司 李超线段树