g++ -c -pipe -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -fno-omit-frame-pointer --param=ssp-buffer-size=4 -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=vfpv3 -mfloat-abi=softfp -D__SOFTFP__ -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4/QtCore -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4/QtGui -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4 -Ibuild -o build/qtmain.o src/qtmain.cpp
g++ -o build/qthello build/qtmain.o -L/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/lib -lQtGui -lQtCore -lpthread
复制代码
最后用"file"命令看看是否正确生成了可执行文件,如果输出类似下面的输出,那恭喜你,你成功了,这里
输出的是ARM平台的qthello, 你无法在你自己机器上面运行,必须拷贝到你的模拟器或者是ARM CPU的真机
上面运行,比如N900.
u@zhai.me:/opt/meego/qthello$ file build/qthello
build/qthello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.25, not stripped
复制代码
[在qemu(虚拟机)上安装MeeGo系统] 可选,如果你没有可以安装MeeGo的硬件,那你必须安装这个哟。
1. 首先用mad-admin查询下有哪些东西是可以安装的:
u@zhai.me:/opt/meego$ mad-admin list runtimes
qemu-n900-pr12 (installable)
rx48-diablo (installable)
meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime (installable)
meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime (installable)
复制代码
2. 安装我们查询到的系统,(PS: 我不知道diablo是什么东东),这里我们安装Intel(ia32)的的上网本
系统,笔记本啊,无语啊哈哈
u@zhai.me:/opt/meego$ sudo mad-admin create -f -e meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime
[sudo] password for aries:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 458M 0 701k 0 0 16351 0 8:09:38 0:00:43 8:08:55 12759
复制代码
这是考验网速的时候了...慢慢等
因为下载需要很久的原因,我使用我原有的Maemo系统模拟器给大家展示以下如何启动qemu以及启动后的
效果(你在qemu中启动刚才我们安装好的meego上网本系统只需要使用"mad remote -r meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime poweron"命令:
u@zhai.me:/opt/NokiaQtSDK$ ./Maemo/4.6.2/bin/mad remote -r qemu-n900-pr13 poweron
Starting QEMU runtime qemu-n900-pr13
This may take some time ...
复制代码
下面是Maemo 5在N900上面启动的效果(qemu):
如果使用qemu遇到问题,主要是OpenGL的问题(我现在这个maemo 5的模拟器就没有OpenGL加速,很慢的)
,那你运行qemu的时候可以加上
QEMU_NOGRAPHIC=yes
复制代码
环境变量,这样就可以运行无OpenGL加速的qemu版本,比如:
u@zhai.me:/opt/meego$ QEMU_NOGRAPHIC=yes mad remote -r meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime poweron
复制代码
使用ssh登入qemu中的meego系统(可以使用"meego"和"root"用户,密码都是"meego":
u@zhai.me:/opt/meego$ ssh meego@127.0.0.1 -p 6666
复制代码
因为我的meego系统还没有安装好,所有我登录我的maemo系统,如下:
u@zhai.me:/opt/NokiaQtSDK$ ssh developer@127.0.0.1 -p 6666
BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso30+0m5) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/home/developer $ uname -a
Linux Nokia-N900 2.6.28-omap1 #1 PREEMPT Fri Aug 6 11:50:00 EEST 2010 armv7l unknown
复制代码
Ok,成功了。
今天就说到这里,明天再介绍如何在qtcreator中整合使用这些工具来开发应用程序。
不能启动qemu的童鞋们看这里:
如果你的电脑是AMD的cpu,而且报以下错误的话:
Could not access KVM kernel module: No such file or directory
failed to initialize KVM
解决方法就是安装qemu的内核模块,然后加载kvm,并且在bios开启VT支持:
1.sudo apt-get install qemu-kvm
sudo modprobe kvm
2.重启电脑,进入bios界面,设置advance选项里面的virtualization标签为Enabled,保存退出
3.开机后,通过命令 lsmod | grep kvm,如果出现以下内容,说明kvm加载成功了
kvm_amd 29264 0
kvm 244765 1 kvm_amd
4.重新开启模拟器就OK
作者:侯业伟houyewei@gmail.com