1.qt sdk安装
Meego touch安装需要qt的版本为4.7或者以上,如果你没有安装qt或者你的版本过低的话,那可以前往以下链接进行下载,
http://qt.nokia.com/developer/qt-qtcreator-prerelease,下载Pre-Releases版本,完成后解压,切换到代码目录。
依次执行:
./configure -dbus
make
make install
ps:configure之所以加-dbus主要是编译Meego touch的时候需要dbus的库
此步骤详细过程请点击这里
2.Meego touch代码下载
使用git clone git://gitorious.org/meegotouch/libmeegotouch.git 下载代码,
然后执行 chmod 777 -R libmeegotouch,给下载下来的源码全部加上最高权限
3.meego touch编译与安装
安装必备库:libfontconfig1-dev libfreetype6-dev libx11-devlibxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-devlibxrandr-dev libxrender-dev
安装完了以上的库,但是却没有很顺利的把代码编译成功,最后通过错误修改才编译成功,具体修改如下:
1).安装libgconf2-dev和libdbus-qt-1-dev库(对应于错误三的信息)
2).修改libmeegotouch/src/corelib/i18n/mlocale.cpp的279行,给函数 static bool isTwelveHours(const QString &icuFormatQString)
的开始和结尾加上HAVE_ICU的宏(对应于错误一的信息)
3).修改libmeegotouch/configure,将HAVE_DBUS=no改为yes(对应于错误二的信息)
按照以上三个步骤修改完毕,然后切换到libmeegotouch,依次执行:
./configure
make
make install
耐心等待,如果不出什么意外,就会成功的编译完成。如果你在编译还有什么问题,可以一起讨论哦~
[转载请注明出处:MeeGo中文论坛 米趣网]
附:
错误一:
代码
i18n/mlocale.cpp:279: error: ‘bool isTwelveHours(const QString&)’ defined but not used
make[2]: *** [.obj/mlocale.o] 错误 1
make[2]:正在离开目录 `/home/chen/MeeGo/libmeegotouch/src/corelib'
make[1]: *** [sub-corelib-make_default-ordered] 错误 2
make[1]:正在离开目录 `/home/chen/MeeGo/libmeegotouch/src'
make: *** [sub-src-make_default-ordered] 错误 2
错误二:
代码
workspace/mdeviceprofile.cpp: In member function ‘bool MDeviceProfilePrivate::load(const QString&)’:
workspace/mdeviceprofile.cpp:119: error: ‘mmPerInch’ was not declared in this scope
make[2]: *** [.obj/mdeviceprofile.o] 错误 1
make[2]:正在离开目录 `/home/chen/MeeGo/libmeegotouch/src/corelib'
make[1]: *** [sub-corelib-make_default-ordered] 错误 2
make[1]:正在离开目录 `/home/chen/MeeGo/libmeegotouch/src'
make: *** [sub-src-make_default-ordered] 错误 2
错误三:
代码
../src/corelib/core/mgconfitem.cpp:28:31: error: gconf/gconf-value.h: 没有那个文件或目录
../src/corelib/core/mgconfitem.cpp:29:32: error: gconf/gconf-client.h: 没有那个文件或目录
../src/corelib/core/mgconfitem.cpp:39: error: ‘guint’ does not name a type
../src/corelib/core/mgconfitem.cpp:42: error: ‘GConfClient’ has not been declared
../src/corelib/core/mgconfitem.cpp:42: error: ‘guint’ has not been declared
../src/corelib/core/mgconfitem.cpp:42: error: ‘GConfEntry’ has not been declared
../src/corelib/core/mgconfitem.cpp:42: error: ‘gpointer’ has not been declared
../src/corelib/core/mgconfitem.cpp: In constructor ‘MGConfItemPrivate::MGConfItemPrivate()’:
../src/corelib/core/mgconfitem.cpp:33: error: class ‘MGConfItemPrivate’ does not have any field named ‘notify_id’
../src/corelib/core/mgconfitem.cpp: At global scope:
../src/corelib/core/mgconfitem.cpp:49: error: expected initializer before ‘*’ token
make[1]: *** [mgconfitem.o] 错误 1