wxWidgets (biblioteka) - instalacja ze źródeł

Instalacja wxWidgets 3.1.1wxWidgets to biblioteka C ++, która pozwala tworzyć aplikacje dla wielu systemów (Linux, Windows, Mac OS X i innych) w oparciu o ten sam kod źródłowy. Wiele programów, jak: CubicSDR czy KiCAD używanych przez radioamatorów czy krótkofalowców wykorzystuje ją.

W lutym 2018 pojawiła się nowa wersja 3.1.1. Choć zawiera (bardzo nieliczne) niezgodne z poprzednią wersją 3.0.x zmiany API to w przypadku niektórych aplikacji ta wersja jest wymagana. Naszym celem będzie samodzielna kompilacja (budowa ze źródeł) programów: Gqrx oraz CubicSDR , co zostanie opisane w odrębnych artykułach.

Kompilacja źródeł programu CubicSDR (v. 0.2.4) z użyciem wxWidgets v. 3.1.0 przebiega "bezbłędnie", ale próba uruchomienia programu kończy się błędem:

~$ ./CubicSDR
Loading:: configuration file '/<...>/.CubicSDR/config.xml'
(CubicSDR:8922): Gdk-ERROR **: The program 'CubicSDR' received an X Window System error.
This probably reflects a bug ...

Jeśli przed kompilacją CubicSDR zainstalujemy (ze źródeł) wersję 3.1.1 wxWidgets wszystko pójdzie "jak po maśle". Ale po kolei...

Konsekwencją wykonania opisanych tu procedur będzie zainstalowanie w systemie Linux (dystrybucja Debian oraz mu pokrewne) biblioteki wxWidgets na podstawie źródeł pobranych z GitHub'a.

Zanim przystąpisz do dalszych działań (o ile nie zrobiłeś tego wcześniej) zapoznaj się z artykułem: Automake, build-essential, cmake... na dobry start, gdzie opisałem czynności związane z przygotowaniem samodzielnej kompilacji kodów źródłowych.

Jak już pisałem w artykule o bibliotece SoapySDR  w katalogu domowym utworzyłem podkatalog SDR, który zawiera wszystkie pliki (w tym te źródłowe) związane z eksploatacją SDR. Dlatego też w listingach widocznym jest, że komendy wykonywane są w podkatalogu SDR.

Proces instalacji wxWidgets zaczynam od wejścia do katalogu SDR (komendy systemowe zostały wytłuszczone):

~$ cd SDR

a następnie wykonujemy listę komend (elementy wytłuszczone):

~/SDR/ $ wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.1/wxWidgets-3.1.1.tar.bz2
~/SRD/ $ tar -xvjf wxWidgets-3.1.1.tar.bz2
~/SRD/ $ mkdir -p ~/SDR/wxWidgets-staticlib
~/SRD/ $ cd wxWidgets-3.1.1
~/SRD/wxWidgets-3.1.1/ $ ./autogen.sh
~/SRD/wxWidgets-3.1.1/ $ ./configure --with-opengl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webkit --disable-webview --disable-webviewwebkit --prefix=`echo ~/SDR/wxWidgets-staticlib` CXXFLAGS="-std=c++0x"
~/SRD/wxWidgets-3.1.1/ $ make -j4
~/SRD/wxWidgets-3.1.1/ $ sudo make install
~/SRD/wxWidgets-3.1.1/ $ sudo ldconfig
~/SRD/wxWidgets-3.1.1/ $


Zwróć uwagę, że:

  • w 3 linii listingu tworzymy podkatalog ~/SDR/wxWidgets-staticlib, w którym zostaną umieszczone wyniki kompilacji. Jeśli zmienisz nazwę (i/lub lokalizację) tego katalogu to musisz też odpowiednio zmodyfikować parametr --prefix komendy configure!!!
    Obecna wartość to (patrz listing): --prefix=`echo ~/SDR/wxWidgets-staticlib`,
  • dwie ostalnie komendy wykonane zostały z uprawnieniami super użytkownika (użycie sudo).

No i biblioteka wxWidgets została poprawnie zainstalowana. Kolejny krok mamy za sobą.

Podczas opracowania tego dokumentu wykorzystano sugestie Autorów zawarte w dokumentacji projektu oraz własne doświadczenia.