Neues von der Sternwarte: Abhängigkeiten

Das mit dem Kompilieren ist schon so eine Sache!

Mit dem Quellcode alleine ist es bisweilen nicht getan. Es werden oft andere Dateien benötigt, die mit dem Quellcode sozusagen verknüpft werden. Mache dieser anderen Dateien sind auf unserem System schon vorhanden, andere wieder nicht.

Man nennt das Abhängigkeiten oder zu gut Deutsch dependencies 🙂

Nur wenn alle Abhängigkeiten erfüllt sind, kann kompiliert werden. Der Compiler meckert nämlich, wenn er etwas nicht findet, was er erwartet, was aber nicht da ist.

Nun kann es auch sein, daß einige der abhängigen Dateien optional sind. Das bedeutet, es wird zwar kompiliert, wenn sie fehlen. Aber die Funktionen, die sie zur Verfügung stellen würden , werden im fertig kompilierten Programm ebenfalls fehlen.

Nun, was bedeutet das für uns? Na ganz einfach! Installieren wir doch einfach alle für unser Projekt notwendigen Dateien und lösen damit alle Abhängigkeiten auf, auch die optionalen.

Ich hab mir die Freude gegönnt, das Kompilieren ohne die abhängigen Dateien zu starten. Mit Hilfe der Fehlermeldungen, die der Compiler bei jedem neuen Durchgang auswarf, war es mir dann möglich herauszufinden, welche Dateien fehlten (Für Ubuntu existiert eine Liste dieser Abhängigkeiten, bei openSUSE haben die Dateien aber andere Namen. Drum war hier Handarbeit angesagt).

Ich installiere wieder über die Kommandozeile:

Dependencies für libindi

sudo zypper install \
zlib-devel \
cfitsio-devel \
libnova-devel \
libusb-1_0-devel \
libcurl-devel \
gsl-devel \
libjpeg8-devel \
fftw3-devel \
libtheora-devel \
gtest \
gmock

Dependencies für 3rdParty-Treiber

sudo zypper install \
libraw-devel \
libtiff-devel \
libgphoto2-devel

Dependencies für astrometry.net

sudo zypper install \
python3-astropy \
libnetpbm-devel \
swig \
cairo-devel

Um einen Fehler beim Kompilieren zu vermeiden, sollte noch folgende Datei installiert werden:

sudo zypper install \
python3-numpy-devel

Ich hab´s vorhin weggelassen, um nachher beim Kompilieren des astrometry.net-Projekts zeigen zu können, welche Fehler sich da auftun können.

Psst, kommt mal her und nicht weitersagen: eigentlich hatte ich das devel-Paket nur vergessen zu installieren… 🙂

Dependencies für kstars

sudo zypper install \
extra-cmake-modules \
libqt5-qtsvg-devel \
libqt5-qtwebsockets-devel \
knotifyconfig-devel \
kauth-devel \
kconfig-devel \
kcrash-devel \
kdoctools-devel \
kwidgetsaddons-devel \
knewstuff-devel \
ki18n-devel \
kio-devel \
kplotting-devel \
knotifications-devel \
eigen3-devel \
wcslib-devel \
xplanet \
libQt5DataVisualization5-devel \
qtkeychain-qt5-devel

Wieder ein Screenshot gefällig? Bitteschön, am Beispiel kstars:

02-kstars_dev

Übrigens:
Die Abhängigkeiten hab ich hier hierarchisch aufgeführt. Das bedeutet, wenn wir nur kstars und libindi kompilieren wollen, weil uns astrometry.net vielleicht nicht gefällt, dann ist es kann es sein, daß einige der astrometry.net-Abhängigkeiten nun in die Liste der Abhängigkeiten für kstars bzw, libindi aufgenommen werden müssen. Sonst „funzt“ es nicht.

Aber keine Angst. Der Compiler meckert schon, wenn ihm etwas nicht gefällt 🙂

Ist schon ein interessantes Thema, oder?

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.