您的位置:首页 > 运维架构 > Linux

Cross compiling wxDFB-2.8.11 for ARM-Linux

2011-12-28 11:07 826 查看
Without GUI, cross compilation of wxWidgets is pretty easy. However it does not provide wxImage. With DirectFB, a lot of errors produce, just like many cross compilations. What you need are zlib-1.2.5, libpng-1.2.43, libjpeg (jpegsrc.v8b) , freetype-2.3.12
and wxWidgets-2.8.11. It is important to use libpng 1.2.x, not libpng 1.4.x.

install path: /home/xxx/wxDFB-2.8.11-arm

compiler: arm-none-linux-gnueabi

host: arm-angstrom-linux-gnueabi

build: i686-pc-linux (virtualbox)

zlib-1.2.5

export CC=arm-none-linux-gnueabi-gccset C compiler
./configure \

--prefix=/home/xxx/wxDFB-2.8.11-arm \

--eprefix=/home/xxx/wxDFB-2.8.11-arm \

--static
configure Makefile

install path

static build
makebuild [*]
make install -k -iinstall with ignoring error [**]
unset CCunset C compiler
[*] Remember to check the output.

[**] There is an error in "make install"

cp /home/xxx/wxDFB-2.8.11-arm/lib
cp: missing destination file operand after `/home/xxx/wxDFB-2.8.11-arm/lib'
libpng-1.2.43, libjpeg (jpegsrc.v8b) , freetype-2.3.12

./configure \

--prefix=/home/xxx/wxDFB-2.8.11-arm \

--host=arm-angstrom-linux \

--target=arm-angstrom-linux \

--build=i686-pc-linux \

--disable-shared \

--enable-static \

CC=arm-none-linux-gnueabi-gcc \

CFLAGS="-I/home/xxx/wxDFB-2.8.11-arm/include" \

LDFLAGS="-L/home/xxx/wxDFB-2.8.11-arm/lib"
machine that run the binaries

redundant?

machine that generate binaries

do not build shared library

build static library

C compiler

C compiler flags - include path

linker flags - lib path
make
make install
DirectFB-1.4.3

./configure \

--prefix=/home/xxx/wxDFB-2.8.11-arm \

--host=arm-angstrom-linux \

--target=arm-angstrom-linux \

--build=i686-pc-linux \

--disable-shared \

--enable-static \

--disable-osx \

--disable-x11 \

--enable-zlib \

--with-gfxdrivers=none \

--with-inputdrivers=linuxinput \

CC=arm-none-linux-gnueabi-gcc \

CFLAGS="-I/home/xxx/wxDFB-2.8.11-arm/include" \

CXX=arm-none-linux-gnueabi-g++ \

CXXFLAGS="-I/home/xxx/wxDFB-2.8.11-arm/include" \

LDFLAGS="-L/home/xxx/wxDFB-2.8.11-arm/lib" \
FREETYPE_CFLAGS=" \

-I/home/xxx/wxDFB-2.8.11-arm/include/freetype2 \

-I/home/xxx/wxDFB-2.8.11-arm/include" \
FREETYPE_LIBS="-L/home/xxx/wxDFB-2.8.11-arm/lib -lfreetype"
disable OSX support

disable X11 support

without display drivers

Linux input only

C++ compiler

C++ compiler flags

Freetype C comipler flags

Freetype lib path
make[*]
make install
[*] If you get errors:

Relocations in generic ELF
could not read symbols: File in wrong format
rename /usr/local/lib temporarily.

wxWidgets-2.8.11

A typo in src/common/strconv.cpp which produces an error:

src/common/strconv.cpp:1679:22: error: token "=" is not valid in preprocessor expressions

#if SIZEOF_WCHAR_T == 4
_T("UCS-4"),
#elif SIZEOF_WCHAR_T = 2
_T("UCS-2"),
#if SIZEOF_WCHAR_T == 4
_T("UCS-4"),
#elif SIZEOF_WCHAR_T == 2
_T("UCS-2"),
I need to add --disable-debug_gdb to complete disable debug when building for 2440.
./configure \
--prefix=/home/xxx/wxDFB-2.8.11-arm \
--host=arm-angstrom-linux \
--target=arm-angstrom-linux \
--build=i686-pc-linux \
--with-directfb \
--with-themes=mono \
--disable-accel \
--disable-popupwin \
--disable-help \
--disable-combobox \
--disable-menus \
--disable-mdi \
--disable-mdidoc \
--disable-docview \
--disable-printarch \
--disable-calendar \
--disable-choice \
--disable-choicebook \
--disable-dirdlg \
--disable-filedlg \
--disable-fontdlg \
--disable-filepicker \
--disable-dirpicker \
--disable-fontpicker \
--disable-datepick \
--disable-hyperlink \
--disable-aui \
--disable-richtext \
--disable-fontmap \
--disable-xrc \
--disable-html \
--disable-shared \
--enable-static \
CC=arm-none-linux-gnueabi-gcc \
CFLAGS="-I/home/xxx/wxDFB-2.8.11-arm/include" \
CXX=arm-none-linux-gnueabi-g++ \
CXXFLAGS="-I/home/xxx/wxDFB-2.8.11-arm/include" \
LDFLAGS="-L/home/xxx/wxDFB-2.8.11-arm/lib" \
DIRECTFB_CFLAGS=" \

-I/home/xxx/wxDFB-2.8.11-arm/include/directfb" \
DIRECTFB_LIBS="-L/home/xxx/wxDFB-2.8.11-arm/lib"
toolkit

disable unsupported feature [*]

DirectFB include path

DirectFB lib path
make
make install
[*] From install-dfb.txt

Linking to wxDFB

If your IDE support backtick execution, use bin/wx-config (http://wiki.wxwidgets.org/Wx-Config) and other configuration script in bin. Newest Eclipse looks like not support this. I manually added all flags. I ran all configuration scripts and cat *.la
to find out the flags.

C++/C symbols

_FILE_OFFSET_BITS=64

_LARGE_FILES

__WXUNIVERSAL__

__WXDFB__
C++/C include path

/home/xxx/wxDFB-2.8.11-arm/lib/wx/include/arm-angstrom-linux-dfbuniv-ansi-release-static-2.8

/home/xxx/wxDFB-2.8.11-arm/include/wx-2.8
lib (order matters, mine may be wrong)

wx_dfbuniv_adv-2.8-arm-angstrom-linux

wx_dfbuniv_core-2.8-arm-angstrom-linux

wx_dfbuniv_qa-2.8-arm-angstrom-linux

wxexpat-2.8-arm-angstrom-linux

wxtiff-2.8-arm-angstrom-linux

wx_base_xml-2.8-arm-angstrom-linux

wx_base_net-2.8-arm-angstrom-linux

wx_base-2.8-arm-angstrom-linux

directfb

direct

freetype

fusion

jpeg

png12

z

dl

m

pthread
lib path

/home/xxx/wxDFB-2.8.11-arm/lib

/home/xxx/wxDFB-2.8.11-arm/lib/directfb-1.4-0/interfaces/IDirectFBFont/

/home/xxx/wxDFB-2.8.11-arm/include/directfb
other objects

/home/xxx/wxDFB-2.8.11-arm/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_default.o

/home/xxx/wxDFB-2.8.11-arm/lib/directfb-1.4-0/wm/libdirectfbwm_default.o

/home/xxx/wxDFB-2.8.11-arm/lib/directfb-1.4-0/systems/libdirectfb_fbdev.o

/home/xxx/wxDFB-2.8.11-arm/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.o
FontIndex

See install-dfb.txt. Remember to export WXDFB_FONTPATH on host.

[DejaVuSans]
Bold=DejaVuSans-Bold.ttf
Regular=DejaVuSans.ttf
BoldOblique=DejaVuSans-BoldOblique.ttf
ExtraLight=DejaVuSans-ExtraLight.ttf
Oblique=DejaVuSans-Oblique.ttf

[DejaVuSansMono]
Regular=DejaVuSansMono.ttf
Oblique=DejaVuSansMono-Oblique.ttf
Bold=DejaVuSansMono-Bold.ttf
BoldOblique=DejaVuSansMono-BoldOblique.ttf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: