2.13.2009

CeGcc : gcc for Windows CE (ARM) -- 安裝篇

optimize似乎已經到極限。
接下來只能用 ARM v5TE 的 DSP instruction 來作。
但是 eVC 沒有 support v5TE。
所以.. 要試試看 cegcc.

我要 用的應該是 arm-mingw32ce : 是在 Windows 的 Cygwin下 build Windows CE 的 native apps.

所以到 這裡 (還真難找),download win-cegcc-mingw32ce-0.51.0-1.tar.gz
解開是一個 opt folder (? 放到 Cygwin 下的 opt 就OK?)

沒有 for windows 的 installation guid,Linux 倒是有 (還是 安裝到 Linux ?)

就裝在 Linux 吧..

Wiki 有更詳細的說明.. for ubuntuSDL 喔.
就 follow ubuntu 的好了.. 要install alien..
然後 download 兩個 rpm,,,然後
sudo alien -i cegcc-cegcc-0.51.0-1.i586.rpm mandriva-cegcc-mingw32ce-0.51.0-1.i586.rpm
安裝很久...幾乎以為是當機..
裝完後..他說要自己建 symbolic link 到剛剛安裝的 path..

sudo ln -s /opt/mingw32ce/bin/* /usr/bin/
sudo ln -s /opt/cegcc/bin/* /usr/bin/

原Wiki是手動copy 所有 bin 內的 file 過去..

然後,試試看 sample.c:
#include <windows.h>

int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
MessageBoxW(0, L"HELLO!", L"H3LLO!", 0);
}
build:
有兩個command 都可以 build ..
arm-wince-cegcc-gcc
arm-wince-mingw32ce-gcc
build 出來後,第二個 command 的 target size 比較大。
文件說build 出來的 exe 不能直接 run,需要 dll.

但是測試結果第二個 command : arm-wince-mingw32e-gcc build 出來的 sample program 可以直接 run (大概用得的 funciton 不多吧...)

文件有說明這兩個 gcc 的不同處:
In an apparent attempt to complicate matters, we implement not only the arm-wince-cegcc target (see above), but also the arm-wince-mingw32ce target. MinGW is a free software project implementing a Minimalist GNU for Windows. We're using this target to build applications that merely use the Windows CE API, not our CeGCC (newlib based) library. (Note that this is neither a full nor an official port of MinGW.)
大概是說: mingw32e 版本 利用mingw 的環境,build 出只有呼叫Windows CE API 的 program,沒有呼叫cegcc 自己的api (大概是說 link 的 function 吧...)。

所以應該要用 mingw32ce 版本。

沒有留言: