- 浏览: 9218632 次
- 性别:
- 来自: 上海
最新评论
-
netkongjian:
不错的报表工具知识分享![deyi]
主流报表工具推荐 -
starry8023:
您的博客很有用!而且我也出现了类似的问题,我是在vs上运行的, ...
在VC下配置openGL -
sliuxl:
...
复制表结构 -
DR玫瑰花香:
[color=darkblue][/color][size=m ...
KMP算法深度解析 -
alvin198761:
看看这两个操作系统的历史,就知道了,这个问题没法追究责任,一个 ...
一则旧闻-Linux是UNIX的盗版?SCO的三大漏洞
Symbian development on Linux and OS X
Introduction
Since version 1.03 of my gnupoc package, I've combined SDK patches, updated tool sources and gcc patches into one (slighly larger) package, instead of distributing lots of patches separately. People interested in the old approach can read the old version of this page.
The main goal of this gnupoc patch collection is to be able to build symbian projects on unix-like systems with as little changes as possible to the actual projects. This means that it e.g. uses the same mmp files and external makefiles for icons as on Windows.
My patches and tools are based on the original GnuPoc project.
Using this package, you can build applications for S60 1st, 2nd and 3rd ed, and UIQ 3, on Linux and OS X. The SDKs can be unpacked and binaries and sis packages be built completely without wine.
News/changes
- Version 1.13 (March 31, 2009) - Updated the S60 5.0 SDK scripts and patches to the 1.0 version of the SDK, recently released, some minor fixes.
- Version 1.12 (January 22, 2009) - Fixed compilation with gcc 4.3, integrated a fix for ar in both EKA1 and EKA2 gcc (needed on e.g. Ubuntu 8.10), fixed building DLLs on the S60 3.2 SDK (thanks to Jean-Yves Baudy for pointing this out), assorted fixes for S60 5.0, fix building of the EKA1 gcc on x86_64/linux, initial support for compiling context-sensitive help (requires wine), other misc fixes
- Version 1.11 (October 3, 2008) - Initial support for S60 5.0
- Version 1.10 (September 4, 2008) - compilation fixes for g++ 4.3 (thanks to Mrinal Kalakrishnan and Jakob Kemi for sending patches!), some minor new features implemented in signsis
- Version 1.09 (March 31, 2008) - adds support for S60 3.2, and has some minor bugfixes and new features for the included tools
- Version 1.08 (February 27, 2008) - fixes a lot of issues on OS X Leopard. Seems to work fine on most Leopard machines, if you experience problems please let me know.
- Version 1.07 (December 04, 2007) - fixes a regression in compiling the EKA1 gcc
- Version 1.06 (November 26, 2007) - fixed a bug in elf2e32 which prevented it from working on S60 3.1, fixed some compilation problems on FreeBSD, added an initial patch for the S60 3.2 SDK beta (but no installer script yet, since I haven't found a tool able to unpack the installer). Thanks to all who reported problems and helped solve them!
- Version 1.05 (September 14, 2007) - a bugfix for signsis, deflate compression support for petran and elf2e32, build elf2e32 by default, an initial version of a svgt-binary encoder
- Version 1.04 (September 2, 2007) - fixes for rcomp, petran and makesis for running on 64-bit linux, small bugfixes in mifconv and elf2e32, better error reporting in the new rcomp, completely new makesis for Symbian 9 SIS files, use unshield instead of i6comp.exe for extracting S60 SDKs
- Version 1.03 (August 13, 2007) - support for UIQ 3.0 and 3.1, added most tools except gcc into the package, support for symbian 9 resources in rcomp, elf2e32 replacement, mifconv replacement, support for building the old GCC toolchain on OSX/intel
- Version 1.02 (April 7, 2007) - calls external makefiles using wine, some more assorted bugfixes
- Version 1.01 (March 5, 2007) - clarified the license, added instructions on doing a read-only installation of the SDKs, some other slight bugfixes
- Version 1.0 (October 15, 2006) - initial release
Download the latest package above. First you'll have to install a toolchain for the SDK you want to use. For S60 1st and 2nd ed, you need the EKA1 toolchain, for S60 3rd ed and UIQ 3, you need the EKA2 toolchain.
Installing the EKA1 toolchain
In addition to the GnuPoc archive, you need the source to the modified gcc release (local copy).
Unpack the GnuPoc archive, enter the tools directory, and compile gcc using the install_gcc_539 script:
tar -zxvf gnupoc-package-1.03.tar.gz
cd gnupoc-package-1.03
cd tools
./install_gcc_539 ../../gcc-539-2aeh-source.tar.bz2 ~/symbian-gcc
If you want to have a compiler for the THUMB target, build that with the isntall_gcc_539_thumb script similarly.
Then you can install the rest of the tools. These aren't strictly necessary if wine is available, but recommended. (If omitted, the build scripts uses the exe versions in the SDK instead.)
./install_eka1_tools ~/symbian-gcc
Installing the EKA2 toolchain
In addition to the GnuPoc archive, you need CodeSourcery's GCC. For Linux, you can choose to download the binaries, for other platforms you can compile it from source. (There's also local copies of the Linux binaries and the source.)
To install the binaries, just unpack them:
mkdir csl-gcc
cd csl-gcc
tar -jxvf ../gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2
To compile it from source instead, unpack the GnuPoc archive and use the install_csl_gcc script:
tar -zxvf gnupoc-package-1.03.tar.gz
cd gnupoc-package-1.03
cd tools
./install_csl_gcc ../../gnu-csl-arm-2005Q1C-arm-none-symbianelf.src.tar.bz2 ~/csl-gcc
Then you can install the rest of the tools. These aren't strictly necessary if wine is available. (If omitted, the build scripts uses the exe versions in the SDK instead.)
cd gnupoc-package-1.03
cd tools
./install_eka2_tools ~/csl-gcc
SDKs
After downloading the GnuPoc package above, you still need to get the SDK you want to use from Forum Nokia or UIQ Developer Community. The following versions are supported at the moment:
Version | File name | Install script | Comments |
S60 1st Edition, FP1, WINS | nS60_sdk_v1_2.zip | install_gnupoc_s60_12 | |
S60 2nd Edition, WINS | s60_sdk_v2_0.zip | install_gnupoc_s60_20 | Working emulator |
S60 2nd Edition, FP1, WINS | S60_SDK_2_1_NET.zip | install_gnupoc_s60_21 | |
S60 2nd Edition, FP1, CW | S60_SDK_v21c_CW.zip | install_gnupoc_s60_21_cw | Working emulator |
S60 2nd Edition, FP2, WINS | s60_2nd_fp2_sdk_msb.zip | install_gnupoc_s60_26 | Working emulator |
S60 2nd Edition, FP2, CW | s60_2nd_fp2_sdk.zip | install_gnupoc_s60_26_cw | Working emulator |
S60 2nd Edition, FP3 | s60_2nd_sdk_fp3.zip | install_gnupoc_s60_28 | |
S60 3rd Edition, Maintenance Release | S60-SDK-0616-3.0-mr.3.749.zip | install_gnupoc_s60_30 | |
S60 3rd Edition, FP 1 | S60-SDK-200634-3.1-Cpp-f.1090b.zip | install_gnupoc_s60_31 | |
S60 3rd Edition, FP 2 | S60-3.2-SDK-f.inc3.2130.zip | install_gnupoc_s60_32 | |
S60 5th Edition | S60_5th_Edition_SDK_v1_0_en.zip | install_gnupoc_s60_50 | |
UIQ 3.0 | UIQ3.0SDK.exe | install_gnupoc_uiq_30 | |
UIQ 3.1 | UIQ3.1SDK.exe | install_gnupoc_uiq_31 |
(Everything is tested using Wine 0.9.15 and remote X to X11.app on OS X, things might work better or worse on other setups.)
Example on installing an SDK:
tar -zxvf gnupoc-package-1.03.tar.gz
cd gnupoc-package-1.03
cd sdks
./install_gnupoc_s60_26 ../../s60_2nd_fp2_sdk_msb.zip ~/symbian-sdks/s60_26
The install scripts makes almost all files lowercase and patches the build scripts. The exception to the lowercase rule is the GLES include directory and libGLES_CM.lib, for compatibility reasons.
In order to use the SDK, you'll have to set the EPOCROOT environment variable to point to your SDK and add the toolchain directory and the epoc32/tools directory of the SDK to your PATH. This might be cumbersome if frequently switching between different SDKs. To ease that situation, you can install some wrapper scripts:
./install_wrapper ~/gnupoc
If you've installed the toolchains to other directories than mentioned here, edit ~/gnupoc/wrapper.sh and set EKA1TOOLS and EKA2TOOLS to point to where you've installed them. With these wrappers, you only have to have this single directory in your PATH, and depending on the EPOCROOT variable, the correct toolchain is included and scripts from the current SDK are called.
Wine setup
If you're going to use some tools through wine, you have to copy uidcrc.exe from the epoc32/tools directory in the SDK to a directory in the wine path, e.g. ~/.wine/drive_c/windows. By default, wine is only needed for using the windows compilers, but you might use it to run the original tools instead of the native replacements, if you have problems with the native ones.
If using external makefiles (as for building icons in 3rd edition) with wine, copy make.exe and mifconv.exe, too. make.exemifconv.exe from the 3.0 SDK, since mifconv.exe in 3.1 has some problems starting within wine. Note, this is only needed if omitting the extra EKA2 tools above. probably can be used from any SDK version, but you'll need
In order to build binaries for the emulator, you'll need a windows compiler. Unfortunately, these have to be copied from a real installation. (Perhaps it's possible to do the complete installation of them within wine?)
For the WINS compiler, I've used Visual C++ Toolkit 2003, set up according to this page. Just copy over the C:\Program Files\Microsoft Visual C++ Toolkit 2003 directory to e.g. ~/.wine/drive_c/msvcpp2003.
For the WINSCW compiler, you can install Carbide C++ from Forum Nokia. These instructions apply to Carbide C++ 1.0, for newer versions you might need to use slightly different paths. Copy C:\Program Files\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0 to e.g. ~/.wine/drive_c/codewarrior.
These have to be added to the wine path. Edit ~/.wine/user.reg, and add this after the WINE REGISTRY Version 2 line:
[Environment]
"Path"="c:\\msvcpp2003\\bin;c:\\codewarrior\\Symbian_Tools\\Command_Line_Tools;c:\\windows;c:\\windows\\system"
(Of course, if you've already got a similar environment definition in that file, add it there instead.)
When using the CW compiler, you'll also need to add these variables to your unix environment (the perl build scripts need them, adding them to the wine environment isn't enough, and if set in the unix environment, they're also automatically available in wine):
export MWCSym2Includes="c:\\codewarrior\\symbian_support\\MSL\\MSL_C\\MSL_Common\\include;c:\\codewarrior\\symbian_support\\MSL\\MSL_C++\\MSL_Common\\include;c:\\codewarrior\\symbian_support\\MSL\\MSL_Extras\\MSL_Common\\include"
export MWSym2Libraries="+c:\\codewarrior\\symbian_support"
export MWSym2LibraryFiles="MSL_All_MSE_Symbian.lib;gdi32.lib;user32.lib;kernel32.lib"
Using it
After installing everything, you're able to compile things in the same way as on windows.
In order to compile most projects, the usage of upper/lowercase for filenames must be cleaned up somewhat. The install scripts clean up the usage of lower/upper case in the bundled examples (by forcing them to lowercase), so the should all be buildable directly. (Or at least it tries to, it might not work reliably in stranger examples.)
To build the hello world example on a S60 3rd edition SDK, do the following:
export PATH=~/gnupoc:${PATH}
export EPOCROOT=~/symbian-sdks/s60_30/
cd ~/symbian-sdks/s60_30/s60ex/helloworldbasic/group
bldmake bldfiles
abld build gcce urel
cd ../sis
makesis helloworldbasic_gcce.pkg helloworldbasic.sis
For 1st and 2nd edition, use the paths for those SDKs and build using abld build armi urel instead. The .pkg files for those examples are written for the THUMB target. Either update the .pkg file and replace all occurrances of thumb with armi or build them using abld build thumb urel (which requires that you built a thumb compiler).
On 3rd edition, all sis files must be signed before they can be installed. If you haven't already got a key and certificate pair, generate them:
makekeys -cert -expdays 3650 -password mykey.key mycert.cer
This will prompt for information to enter into the certificate, and create a certificate valid for 10 years. (To create a certificate without a password, just leave out -password. The makekeys tool included in this package has a similar but not identical syntax compared to the makekeys tool in the real SDKs.) Then sign the sis file using this certificate:
signsis helloworldbasic.sis helloworldbasic.sisx mycert.cer mykey.key
The newly generated .sisx file can then be installed on a device.
The version of makesis for Symbian 9 included in this package is also able to sign the package directly when creating it, using a built-in certificate. To use this feature, just add the command line parameter -c.
Contact
在linux平台下面开发Symbian S60应用程序
|
相关推荐
Quick Recipes on Symbian OS: Mastering C++ Smartphone Development Paperback: 382 pages Publisher: Wiley (August 25, 2008) Language: English ISBN-10: 0470997834 ISBN-13: 978-0470997833 Format: PDF You...
本资料集聚焦于“Games on Symbian OS”的源码分析,涵盖了从基础到进阶的多个章节,旨在帮助开发者深入理解Symbian OS上的游戏开发。 一、Symbian OS概述 Symbian OS是一款基于微内核的实时操作系统,设计用于移动...
《Quick Recipes on Symbian OS: Mastering C++ Smartphone Development》是一本旨在帮助开发者快速掌握Symbian操作系统上C++智能手机应用开发的实用手册。本书由Michael Aubert撰写,并得到了Alexey Gusev、Tanzim ...
Additional information includes the evolution of multimedia on Symbian OS from previous versions to the current (v9.5) and plans for the future. Chapters include: Architecture of Multimedia on ...
通过以上内容可以看出,《Quick Recipes on Symbian OS Mastering C++ Smartphone Development》这本书不仅涵盖了Symbian OS的基本概念和技术细节,还提供了大量实用的技巧和案例研究,非常适合希望深入学习Symbian...
综上所述,《Wiley Quick Recipes on Symbian OS: Mastering C++ Smartphone Development》是一本专为希望在Symbian OS平台上进行C++开发的读者准备的实用指南。它不仅深入探讨了Symbian OS的特点和C++语言的优势,...
### Native与Java ME开发在Symbian OS中的应用 #### 引言 本文旨在提供一个关于当前Symbian OS上两种主要应用开发技术——Symbian C++与Java ME的一般性比较。由于技术人员通常在个人及专业层面对这两种技术持有...
### Symbian OS架构介绍:深入理解移动操作系统的历史与技术 #### 概览:Symbian OS的历史背景与发展历程 Symbian OS是一款专为移动设备设计的操作系统,其历史可追溯至1998年,由Psion、Nokia、Ericsson和...
**第一步:Symbian OS C++ For Mobile Phones Ⅰ - Professional Development on Constrained Devices** 这第一卷主要关注在资源受限的设备上进行专业开发,即如何在有限的硬件资源下最大化利用Symbian OS的功能。...
本书《Multimedia on Symbian OS》(Symbian操作系统上的多媒体)主要介绍了如何在Symbian设备上实现多媒体功能,包括控制摄像头、声音、影像和图片等。这本书是Nokia刚出版的作品,并得到了推荐。 #### 作者及贡献...
JAVA ME ON SYMBIAN OS
**Symbian操作系统开发基础** Symbian操作系统(Symbian OS)是早期智能手机平台的先驱,尤其在诺基亚手机中...文档《Symbian OS Development Basics.docx》将更深入地探讨这些概念,为Symbian开发者提供宝贵的指导。
**Symbian OS:手机操作系统的先驱** Symbian OS是历史上最早广泛应用于智能手机的操作系统之一,尤其在2000年至2010年间,它在全球范围内占据了主导地位,尤其是在诺基亚等品牌手机中。这个操作系统以其灵活性、可...
《Symbian OS上的游戏开发手册》不仅是一本实用的手册,也为广大移动游戏开发者提供了一个全面了解Symbian OS游戏开发领域的窗口。无论是对于初学者还是有一定经验的开发者来说,这本书都能够提供宝贵的指导和帮助。...
《Symbian OS 快速指南》是一本专注于Symbian操作系统快速学习的资源,它为用户和开发者提供了深入理解这个经典移动操作系统的关键知识点。Symbian OS在20世纪末到21世纪初是智能手机市场的主导者,尤其是在诺基亚...
《Java ME on Symbian OS: Inside the Smartphone Model》一书深入探讨了 Java ME 如何与 Symbian OS 结合,并在智能型手机上运行。本书由 Roy Ben Hayun 编写,多位专家参与审阅,确保了内容的专业性和准确性。 ##...
《John Wiley and Sons Rapid Mobile Enterprise Development for Symbian OS: An Introduction to OPL Application Design and Programming》这本书,作为2005年五月出版的一本专著,深入浅出地介绍了如何在Symbian...
《Symbian OS上的游戏》这本书为读者提供了关于如何在Symbian平台上进行游戏开发的全面指南。本书不仅涵盖了Symbian系统的多媒体技术细节,还深入探讨了OpenGL ES的应用以及具体的游戏设计实例,对于希望在该平台上...
通过阅读《Java ME on Symbian OS Inside the Smartphone Model》这本书或PDF文档,开发者可以全面掌握在Symbian OS上构建和优化Java ME应用程序的技能,这对于那些希望进入或已经从事移动开发的人员来说,是一项...