已经完成了第一个QNX应用的开发和测试(见 http://www.linuxidc.com/Linux/2011-09/43465.htm),进一步需要将应用直接上传到QNX虚拟机上运行。
我猜想QNX Momentics应该有工具直接进行部署,不过找了一轮没找到,就决定使用最笨的办法:FTP
先从我的WIN 7 CMD命令行窗口通过FTP命令进入FTP界面,输入:
open <QNX IP>
其中<QNX IP>是QNX虚拟机的IP地址,可以在QNX虚拟机上通过ifconfig命令查看。
然后FTP命令提示输入用户名和密码,想起来QNX虚拟机安装起来后root用户没有设置密码,于是重新回到QNX虚拟机上启动terminal, 使用passwd命令为root用户设置了密码,然后再次从我的WIN7 的CMD命令行执行FTP命令,使用open <QNX IP>命令重新连接QNX系统,输入root用户的用户名和密码,不幸地发现root用户不能使用ftp命令登陆,错误如下:
530 User root may not use FTP.
这样的话只能在QNX虚拟机上新建一个用户了,于是又重新回到QNX虚拟机上,通过passwd命令创建一个用户,命令格式如下:
passwd <新用户名>
然后按系统提示输入id号,密码等信息。
创建新用户后回到WIN7 上再次通过ftp命令连接QNX系统,使用新建的QNX用户登陆,登陆后记得使用bin命令将FTP上传方式换成I格式。
然后使用put 命令上传编译好的程序,编译好的程序在QNX Momentics环境workspace目录下的“<项目名>\x86\o”目录中,文件名和项目名相同,不带后缀,命令执行截图如下:
应用上传后在上传用户的home目录下,如使用的是用户user1上传的,则应用在/home/user1目录中,执行的时候记得要带上当前目录,如 ./Hello
不过,如果刚上传应用,执行该应用系统会提示:
cannot execute – Permission denied
意思是因为权限的原因无法执行,需要通过chmod命令修改权限,我自己比较懒,直接给它777的权限,命令格式如下:
chmod 777 ./Hello
表示给文件./Hello所以权限。
这样就可以执行啦:
./Hello
I am running on QNX!