How to Build wxWidgets / C++ for Raspberry Pi Model 2 (ARMv7 Architecture).
UPDATED:
For ease to install and configure Eclipse-IDE/Toolchain, use following link of ready used installer:
wxWidgets is an awesome C++/GUI library to work with. It can produce very nice desktop interface and has complete class library either for GUI on non GUI. Binary program yields by this library is also small and portable. Statically linking is possible to make the program running independently to any linux distribution.
Raspberry Pi is credit card sized computer, it has small form factor with capability similar to PC of PIII/900MHz with 1GB RAM. Thus, sufficient to running desktop application, as in his case, Raspbian Wheezy.
Here, you will find brief tutorial how to build wxWidgets for Raspbian to run on Raspberry Pi model 2 (ARMv7 processor).
Setup environment to used are:
- Build system on Ubuntu 14.04 LTS x64
- buildroot
- wxWidgets-3.0.2
- Target: RaspberryPi2 and Raspbian Wheezy
Build Toolchain for ARMv7
To build cross architecture Toolchain we can use awesome build system called buildroot (http://buildroot.uclibc.org/)$ cd ~
$ mkdir wxWidgets
$ cd ~/wxWidgets
$ git clone git://git.buildroot.net/buildroot
$ cd buildroot
$ make raspberrypi2_defconfig
$ make menuconfig
Adjust some requirement as follow:
Toolchain
C library (uClibc) --->
(X) glibc
Target packages > Graphic libraries and applications
[*] X.org X WIndow System --->
Target packages > Libraries > Graphics
[X] libgtk2
[Save]
$ make
Build wxWidgets for ARMv7
Once above toolchain baked and cooked well, then we can start to build and compile wxWidgets and it’s sample application.$ export PATH=~/wxWidgets/buildroot/output/host/usr/bin:$PATH
$ cd ~/wxWidgets
$ wget http://nchc.dl.sourceforge.net/project/wxwindows/3.0.2/wxWidgets-3.0.2.tar.bz2
$ tar -xzpvf wxWidgets-3.0.2.tar.bz2
$ cd wxWidgets-3.0.2
$ mkdir -p build_rpi2/wx3.0.2u_static
$ cd build_rpi2/wx3.0.2u_static
$ ../../configure --host=arm-linux --with-gtk --with-libpng=builtin --with-libjpeg=builtin --with-libtiff=builtin --with-regex=builtin --with-zlib=builtin --with-expat=builtin LDFLAGS="-static-libgcc -static-libstdc++"
$ make
Sit back and relax......
Build Sample Application
$ cd samples/minimal$ make
Copy sample/minimal/minimal to Pi's sdcard and from there try to run:
$ ./minimal
See the result ................
After adjusting some path as describe on buildroot manual, you can download ready used Raspberrypi-Toolchain on sourceforge.net. The toolchain already tested on Ubuntu 14.04 with wxWidgets-3.0.2 as target built. This toolchain can be used for compiling Plain C/C++ for Pi application.
9 comments:
Dear Dedy,
Please could you post the compiled wxWidgets 3.0.2 binaries for Raspberry Pi?
Best regards,
Ric.
Hi Ric,
Compiled wxWidgets 3.0.2 for Raspberry Pi could be found on this following link: https://github.com/dveltool/toolchain
Make a try and feedback your result, please.
Rgrds/Ddy
Any idea why I'm getting the following error message when I run the app on my Pi? I've setup my environment as stated above.
./minimal: error while loading shared libraries: libwx_gtk2u_core-3.0.so.0: cannot open shared object file: No such file or directory
Hi,
I'm new to Linux. I'm trying to install wxWidgets on raspberry Pi3 Medel B. Refer "Build Toolchain for ARMv7", you ask to make some adjustment Toolchain---->
I do not know how to do this? are there any Linux commands to do this?
Adjust some requirement as follow:
Toolchain
C library (uClibc) --->
(X) glibc
Target packages > Graphic libraries and applications
[*] X.org X WIndow System --->
Target packages > Libraries > Graphics
[X] libgtk2
[Save]
I'd really like to get this working but am running into some issues. My environment is a little different but should still work.
Setup environment:
-Build system on Ubuntu 16.04 LTS x64
-buildroot
-wxWidgets-3.0.2
-Target: RaspberryPi3 and Raspbian Jessie
When I move the built file (minimal) to the pi and execute I get:
./minimal: error while loading shared libraries: libwx_gtk2u_core-3.0.so.0: cannot open shared object file: No such file or directory
I then installed the wxWidgets library with:
sudo apt-get install libwxgtk3.0-dev
Now I get:
./minimal: relocation error: ./minimal: symbol __cxa_call_unexpected, version WXU_3.0 not defined in file libwx_baseu-3.0.so.0 with link time reference
Any idea how to get this to run on a Pi3 running Jessie?
Guess I should have looked below at the comments, I am getting this error
../../src/stc/scintilla/src/Editor.cxx:5846:23: error: call of overloaded ‘abs(XYPOSITION)’ is ambiguous
My God Linux is a PITA
Well I want to say I got wxWidgets installed with this command thanx to the person above me "sudo apt-get install libwxgtk3.0-dev"
However when I went to compile Audacity i got a fatal error(first time I have seen that on the RPi3, and unfortunately I got frustrated and closed out the terminal before I could copy the error. I guess I could run it again
Still works like a charm for Pi3 ARMv8 and wxWidgets-3.0.5. Great work, thanks ..
I got compiler. However the generated file is an "x86-64" file. It runs on my computer, but obviously it doesn't run on Raspberry.
Post a Comment