原文链接:Kristian Amlie - Experimental packages for Symbian development on Linux
更新: 2010年12月23日
之前我们写过一篇如何在Linux上进行Symbian开发的文章。但是,过程有些复杂并且需要大量的手工设置。现在我们根据相同的方法更进一步,这里我们提供了预打包的环境,完整地包含了编译器、库以及您开始开发所需要的所有东西!
在这里我有义务向您报告我们的免责声明:Nokia完全不支持这些包。它们只是基于“最好地努力”而提供的,并且不能保证在您的系统中可以正常工作!另外请注意这里并不保证之后我们会对这些包进行更新,并且以后我们也许会切换到另外一种发布格式,例如通过Qt SDK。
另外,目前您还不能使用如下方式在N8上进行开发,因为在N8上现在还不能安装Qt 4.7.1。当N8收到它的第一个手机更新的时候,它将会被升级到Qt 4.7.1,然后您就可以把您的应用发布到它上面了。
现在,把上述事情放在一边,让我们来享受乐趣吧!
我自己作为一个Gentoo Linux用户,很自然地就从构建ebuild(Gentoo中的一种包描述文件)开始。对于不太熟悉Gentoo的朋友,它并不是真正的包,而只是一些如何安装包的配方。在这种方法下绝大部分包都是从源代码编译而得到的,但这并不是严格必需的,因为您的配方也可以包含一些指向已经预编译好的二进制的参考。这样做对于我的好处是通过创建这些构建包的配方,我可以使用同样的配方创建Debian包,因此我只付出了一份的代价就得到了两种包!
所以换句话说,这里提供的包类型有Gentoo的ebuild和Debian的.deb包。RPM用户应该可以通过alien使用.deb包。
更新: 一位Troll同事很友好地提供了基于Fedora的RPM包,所以RPM用户就不再需要使用alien了! (译者注:在原Trolltech或者现在Qt,Nokia开发Qt的开发人员一般自称Troll。)
对于Debian(和Ubuntu)用户:
下载并且安装下列包(仅提供32位版本):
对于RPM(Fedora)用户:
下载并且安装下列包(仅提供32位版本):
对于Gentoo用户:
emerge -av layman
layman -o http://qt.gitorious.org/qt-labs/symbian-overlay/blobs/raw/master/repositories.xml -L
(首先我们需要列出安装仓库让layman知道哪些是可用的)layman -o http://qt.gitorious.org/qt-labs/symbian-overlay/blobs/raw/master/repositories.xml -A qt-symbian-overlay
ACCEPT_LICENSE="nokia-eula sourcery-g++"
添加到 /etc/make.conf
emerge -av qt-symbian-libs
对于所有用户:
在安装完之后,请重新打开您的控制台或者(重新启动)来包含由这些包所导致的环境变化。
还有一些软件是手机本身所需要的,很不走运,没有任何方法来自动化这一过程。您需要检查的第一件事情是您是否有App TRK;一些手机已经内置了,但绝大多数手机没有。通过如下方式可以很简单地检查:
另外,还有一些库需要安装。
runonphone -s <sis-file>
来安装它们。runonphone -s /usr/share/qt4/qt-symbian/lib/Qt.sis
runonphone -s /usr/share/qt4/qt-symbian/lib/QtWebKit.sis
当然您的应用程序的用户不需要做这些。为了使针对用户的发布更容易,请参考Symbian发布指导,特别是Smart Installer那一部分。
就是这些!您现在已经准备好进行开发了!当使用这些包进行Symbian开发的时候,唯一要注意的问题是,您必须使用qmake-symbian
,而不是qmake
。通过使用它,您应该可以通过如下命令试试您的第一个Hello World应用程序:
cd <my-hello-world-app>
qmake-symbian
make runonphone
一些已知问题:
cp /usr/s60-sdk/epoc32/tools/uidcrc.exe `find ~/.wine/ -ipath '*windows/system32'`
sh /usr/portage/distfiles/symbian-adt-4.4-172-arm-none-symbianelf.bin
手动安装它。然后您可以把sys-devel/gcce-4.4.172
添加到/etc/portage/profile/package.provided
来欺骗Portage您已经安装了。-p
指定如/dev/ttyUSB1
或者/dev/ttyACM1
的参数来解决这一问题,详细描述在这里。祝您好运!