View source for Toolchain/zh tw
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Toolchain/zh tw.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Toolchain/zh tw.
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |
Toolchain是一整組可以讓你編譯檔案的工具。針對Openmoko,你可以依下列不同的用途使用不同的工具。
針對這個用途,你應該可以使用針對Openmoko專案所預先建立好的toolchain。在這裡你可以找到如何使用toolchain的方法,帶領你進入編譯專案的一連串程序,並且讓程式能順利的在你的手持式裝置上執行。你應該聽過 OpenEmbedded,身為一個程式開發人員,你應該’’’不要’’’使用OpenEmbedded。
針對系統整合及客製化套件,在 bootstrapping/build process 時,你應該使用OpenEmbedded來建立cross compiler。系統整合及套件客製化整合等問題,超過本文章所要討論的問題,因此在此不加以討論。
熟悉Linux 及其基本的指令工具是最基本的,你必須有x86相容,至少1G的磁碟空間。你也必須要有使用本機編譯器來編譯原始碼的相關操作經驗。在此,提醒您,本篇文章是假設你有存取/home及/usr/local/ 目錄的權限 (有需要時,需成為root)。如果你沒有上述的權限,請與你的管理人員連絡。
你至少應該能使用安裝程式的權限,允許你使用autotools編譯套裝軟體。(the triade of ./configure, make, make install).
需要安裝的軟體—有需要請加入以下 的套件:
sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \ ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check
sudo apt-get install uboot-mkimage
yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \ ccache libXrender-devel intltool GConf2-devel mtools gettext-devel
Fedora-Core似乎沒有libmokoui2可用
apt-get install build-essential ccache autoconf automake autotools-dev libtool \ gettext intltool curl uboot-mkimage mtools fakeroot alien check libglib2.0-dev \ libxrender-dev libgconf2-dev
預先建立的toolchain可以自downloads.openmoko.org下載:
mkdir ~/sources cd ~/sources
32bit
wget http://downloads.openmoko.org/developer/toolchains/openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
64bit
wget http://downloads.openmoko.org/developer/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2
接著,你想要將它解壓縮到檔案系統時,toolchain 它必須安裝到/usr/local/openmoko/.
現在,你有以下的選項:
cd / tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2
bunzip2 openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2 gzip openmoko-x86_64-arm-linux-gnueabi-toolchain.tar fakeroot alien -d openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.gz
最後,每次你想要使用這個工具時,必須改變環境變數,這樣才會找到要用的工具。Toolchain提供了script進行這項工作,因此你必須做的事只是取得它。
請注意,如果你並沒有使用"sh" 或"bash" shell (用"echo $SHELL" 查看) ,那你必須啟動"sh" 或"bash"。
. /usr/local/openmoko/arm/setup-env
做完之後可以使用 env|grep openmoko 來看是否有把env的環境變數設定好了。
若要建立範例專案你需要安裝libmokoui2-dev和gconf-dbus-dev在你的opkg環境。設置你的環境如同上述[1]。現在安裝函式庫使用下面的命令:
opkg-target install libmokoui2-dev gconf-dbus-dev
在選定的目標目錄位址中 (在本範例中為~/):
cp -r /usr/local/openmoko/source/openmoko-sample2 ~/
. /usr/local/openmoko/arm/setup-env
om-conf openmoko-sample2
cd openmoko-sample2
make
如果你希望在主機上安裝這個專案,你可以利用下面的操作,將它安裝到一個現有的設定中:
om-conf --prefix=/usr/local/openmoko openmoko-sample2 cd openmoko-sample2 make install
為了要使用Openmoko-sample2 檔案來製作你自己的專案,某些變更是必須的: * 複製下載的範例應用程式: cp -r /usr/local/openmoko/source/openmoko-sample2 ~/
mv openmoko-sample2 your-project-name cd your-project-name cd src rm *.c
cp your-sources . cd ..
PKG_NAME="your-project-name"
AC_INIT(your-project-main, 0.0.1, http://www.openmoko.org/) AC_CONFIG_SRCDIR(src/main.c)
cd data mv openmoko-sample.png your-project-name.png mv openmoko-sample.desktop your-project-name.desktop
dist_desktop_DATA = your-project-name.desktop dist_appicon_DATA = your-project-name.png
dist_desktop_DATA = smart-search.desktop dist_appicon_DATA = smart-search.png
Name=your-project-name Encoding=UTF-8 Version=0.0.1 Type=Application Exec=your-project-name
Icon=your-project-name
cd .. cd src
bin_PROGRAMS = your-project-name your_project_name_SOURCES = \ main.c your_project_name_LDADD = @DEPENDENCIES_LIBS@
我們已經加入了一個script在你的應用程式外製作了ipkg 。請注意這並不是要在Neo上測試你的應用程式 ( 若你要測試應用程式,你只要使用SCP產出的二進位碼及資料),它對於想你將你的軟體發佈給其它人而言,相當方便。
om-make-ipkg openmoko-sample2
現在你已經取得了openmoko-sample2_0.1_armv4t.ipk ,你可以將它`scp' 到你的Neo,並且安裝它。
scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202: ssh root@192.168.0.202 ipkg install openmoko-sample2_0.1_armv4t.ipk
請注意當你重新發佈產生的ipkg ,請注意它只是一個有更多資訊的ipk骨架,若你無法取得程式庫的獨立性。查看下面的內容來暸解如何修復這個問題。 你也可以在控制檔中提出這個版本的編號,描述及作者/連絡方式。
om-make-ipkg myapp myapp_control
myapp_control的範本:
Package: $appname Version: 0.1 Description: package built by openmoko toolchain Section: openmoko/applications Priority: optional Maintainer: $USER Architecture: armv4t Homepage: http://www.openmoko.org/ Depends: Source: ${SRC}
使用外部的 toolchain是一個為Neo建立程式的好方法。如果你熟悉這個產品的話,你也會想要參考:
加入必要的程式庫到src/Makefile.am 的 _LDADD 欄位,如:
openmoko_sample2_LDADD = @DEPENDENCIES_LIBS@ -lmokogsmd2
之後,請確定再次執行
om-conf
不久之後,你會想要編譯一個無法透過預先編譯toolchain來完成依存性的程式,’如一些obscure libraries。
在這樣的案例當中,請放心的將其它的libraries 放到下一次釋出的Openmoko toolchain。以下是你如何擴充 toolchain安裝。也就是說,我們想要加入一個名為liburiparse的程式庫:
cd ~/source wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2 ./configure --host=arm-angstrom-linux-gnueabi --prefix=/usr/local/openmoko/arm make make install
當你撰寫了一支很好的應用式,而你想要與其它人分享,最佳的方式是
您也可以參考 客製化你的Openmoko套件.