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
[*] Remember to check the output.
[**] There is an error in "make install"
libpng-1.2.43, libjpeg (jpegsrc.v8b) , freetype-2.3.12
DirectFB-1.4.3
[*] If you get errors:
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
I need to add --disable-debug_gdb to complete disable debug when building for 2440.
[*] 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
C++/C include path
lib (order matters, mine may be wrong)
lib path
other objects
FontIndex
See install-dfb.txt. Remember to export WXDFB_FONTPATH on host.
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-gcc | set 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 |
make | build [*] |
make install -k -i | install with ignoring error [**] |
unset CC | unset C compiler |
[**] 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' |
./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 |
./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 |
Relocations in generic ELF could not read symbols: File in wrong format |
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"), |
./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 |
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__ |
/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 |
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 |
/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 |
/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 |
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 |
相关文章推荐
- opencv Cross compilation for ARM based Linux systems
- Cross-compiling Gtk+-3.12.2 with Wayland-1.3.39 backend for ARM
- Cross Compiling For ARM With Autoconf
- QtCreator on Windows to Cross Compile for Linux ARM with CodeSourcery Toolchain
- Compiling Linux kernel for QEMU ARM emulator
- Cross Compiling Python for Embedded Linux
- Cross Compiling Python for Embedded Linux
- Cross Compiling Python for Embedded Linux
- Cross compiling Tiny-X (XFree86-4.8) for arm
- Cross-compiling for ARM
- Linux Support for ARM LPAE 分析
- Error:No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
- 嵌入式linux系统网络超级服务器构建指南(for arm)
- Using crosstool-0.43 to generate cross-compiler for ARM
- Qt 4.6.3 for SkyEye 1.3.1+ArmLinux 2.6.36
- Fedora20-32bit cross-compiling arm-linux-gcc4.3.2
- Archlinux arm的国内镜像源(for Banana Pi / Raspberry Pi , etc)
- static cross compile gtk-2.16.6+gtk-directfb+arm-linux (arm-linux-gcc-3.4.4+glib-2.3.5)
- Linux添加新的系统调用(for arm )
- arm-linux-gcc compile the cross-platform mpich2 on ubuntu