(gelöst) QMS lässt sich nicht mehr kompilieren

Garmin fenix 7X und epix Gen 2 im Test

Der Schwerpunkt dieses Tests und Vergleichs der Garmin Fenix 7X Solar und Garmin Epix Gen 2 liegt auf den Sensoren wie Höhenmesser, Positionsbestimmung und Herzfrequenz. Was unterscheidet die beiden GPS-Outdoor-Smartwatches? Und wie gut ist die Taschenlampe der Fenix 7X für den Outdoorbereich? Hier geht es zum Test der Outdoor-Smartwatches ...
  • Hallo Oliver,

    ich versuche schon seit einigen Tagen QMS neu zu kompilieren und habe NULL Erfolg. Ich weiß das die Anforderungen wieder hoch gesetzt wurden deswegen hab ich das auf ein Debian Testing mit Unstable Paketquellen und Pinning neu probiert weil unter Linux Mint überhaupt kein Erfolg zu erkennen war.

    Also folgende Pakete aus Unstable hab ich eingespielt

    apt install -t unstable cmake cmake-curses-gui g++ git checkinstall subversion debhelper inkscape libalglib-dev libc6-dev zlib1g-dev libbz2-dev libgraphics-magick-perl freeglut3 freeglut3-dev gdal-bin libgdal-dev python3-gdal libproj-dev python3-dev qt5* qttools5-dev-tools qttools5-dev qttools5-private-dev qtwebengine5-dev libqt5sql5-mysql libquazip5*


    Mit diesen Paketen war es mir bis dahin immer möglich ein neues QMS unter Debian Testing zu bauen, aber dieses Mal keine Chance und ich finde einfach den Fehler mit meinen geringen Linux Kenntnissen nicht.

    Ich hänge mal die zwei Dateien an die mir als Fehler bei ccmake ausgegeben werden.

    Ach ja wegen nicht vorhandenen englisch schreibe ich hier und nicht bei den Issues auf der Projektseite.

    Für Hilfe wäre ich dankbar, Gruß

  • trailsucher

    Das Problem ist anscheinend das dieses Testprogramm :

    nicht gebaut werden kann. Das Versuch das Programm zu bauen ergibt folgendes Ergebnis :

    Code
    /usr/bin/ld: CMakeFiles/cmTC_359c3.dir/src.c.o: in function `main':
    src.c:(.text+0x2f): undefined reference to `pthread_create'
    /usr/bin/ld: src.c:(.text+0x3b): undefined reference to `pthread_detach'
    /usr/bin/ld: src.c:(.text+0x47): undefined reference to `pthread_cancel'
    /usr/bin/ld: src.c:(.text+0x58): undefined reference to `pthread_join'
    collect2: error: ld returned 1 exit status. 

    Komisch dabei ist , das er nicht auch wegen pthread_atfork und pthread_exit meckert.

    Kannst du den obigen Quellcode mal manuell kompilieren ?

    Also in eine Datei pthreadtest.c abspeichern und dann mit

    gcc pthreadtest.c -o pthreadtest -rdynamic -lpthread kompilieren.

    Gibt es da den gleichen Fehler ?

    Da pthreads Teil des libc6 Paketes sind. Gab es da zwischen dem letzten erfolgreichen Bau und heute ein Update ?

    Einmal editiert, zuletzt von mkossmann ()

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • QMapShack benötigt jetzt PROJ mindestens in der Version 7.2.1. Neben der Bibliothek und den Tools selber müssen auch die Dateien für die Entwicklung im System sein. Also Header Dateien und die nötigen CMake Dateien um PROJ zu finden. Und genau darin liegt das Problem. Die CMake Dateien werden nicht gefunden. Entweder hast Du nicht das richtige Paket installiert (keine Ahnung wie das bei Mint heißt), oder das Packet beinhaltet diese Dateien nicht. Letzteres wäre ein Bug der Distribution.

  • @kiozen Das mit Proj hatte ich gelesen hatte eine 7.2.1 aus den Paketquellen genommen, aber ohne Erfolg.

    Hab jetzt die Debian Testing VM zurückgesetzt und das Proj Paket 8.0 von der Webseite geholt und mittels

    Code
    ./configure --prefix=/usr
    make
    sudo make install

    gebaut. Aber nichts der selbe Fehler wieder. Ich bin ratlos.


    @mkossmann wo genau hin soll die Datei pthreadtest.c gespeichert werden. Hab das probiert aber es wird immer nur eine Datei erstellt die sich dann nicht öffnen lässt im Terminal kommt keine Info/Fehlermeldung beim ausführen des Scripts.


    Danke trotz allem erst mal. Werd morgen weiter suchen.

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

    Einmal editiert, zuletzt von trailsucher ()

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • Hallo,

    also VM zurückgesetzt und von vorn.

    Hab jetzt als erstes PROJ probiert aber da ist schon Schluss, ich hoffe das ich das wenigstens richtig verstanden habe was ich machen sollte.

    Code
    tar xfv proj-8.0.0.tar.gz
    cd proj-8.0.0
    mkdir build
    cd build
    cmake ..

    Fehler zum Ende

    An was hängts nun ist Python zu alt? Hänge wieder die zwei Logs an.

    Gruß

  • Nein das dürfte nicht der Fehler sein. Denn libpthread ist Teil des glibc Paketes.

    Wenn das Testprogramm (hier auf Opensuse Tumbleweed ) mit den gleichen Compiler-Flags compiliere wie im PROJ Buildsystem bekomme ich auch den gleichen Fehler

    Code
    >gcc pthreadtest.c -o pthreadtest -rdynamic 
    /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: /tmp/ccDrVsAu.o: in function `main':
    pthreadtest.c:(.text+0x2d): undefined reference to `pthread_create'
    /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: pthreadtest.c:(.text+0x39): undefined reference to `pthread_detach'
    /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: pthreadtest.c:(.text+0x45): undefined reference to `pthread_cancel'
    /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: pthreadtest.c:(.text+0x56): undefined reference to `pthread_join'
    collect2: error: ld returned 1 exit status

    Wenn ich aber mit libpthread linke

    Code
     > gcc pthreadtest.c -o pthreadtest -rdynamic -lpthread

    oder als gcc Spezialität das Flag -pthread verwende:

    Code
    gcc -pthread pthreadtest.c -o pthreadtest -rdynamic 

    läßt es sich einwandfrei bauen


    Leider kann ich aber nicht weiterhelfen wie man dies fixt.

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • Halo,

    hatte heute die Gelegenheit, QMS aus dem aktuellen Entwicklungsstrang zu kompilieren. Es ist einiges an mehr Vorarbeit nötig, aber es läuft.


    System: Linux Mint 20.1 frisch in der Virtualbox installiert...


    PROJ, GDAL und QUAZIP sind nun selbst zu kompilieren. Die entsprechenden Anleitungen sind auf den Programmseiten ersichtlich. Bin wie folgt vorgegangen:


    Proj4

    https://proj.org/download.html

    https://proj.org/install.html#…allation-from-source-code - der CMAKE Variante folgen!


    Vorher noch folgende Pakete installieren:

    sudo apt install sqlite3 libsqlite3-dev libtiff5-dev libcurl4-gnutls-dev


    GDAL

    https://gdal.org/download.html#current-releases


    folgende Befehle ausführen


    ./configure --prefix=/usr

    make


    Danach mit sudo checkinstall ins System einbinden. Sollte checkinstall nicht installiert sein, sudo apt install checkinstall ausführen


    QUAZIP:

    https://github.com/stachenov/quazip


    cmake .

    make

    sudo make install


    Quazip meckert bei cmake . zwar


    - Could NOT find Qt5Zlib (missing: Qt5Zlib_DIR)

    CMake Warning at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:39 (message):

    Failed to find Qt5 component "Zlib" config file at

    "/usr/lib/x86_64-linux-gnu/cmake/Qt5Zlib/Qt5ZlibConfig.cmake"

    Call Stack (most recent call first):

    CMakeLists.txt:62 (find_package)


    Macht soweit aber nix, da make und sudo make install dann durchlaufen.


    Dann noch routino, und QMS. Beim Start von QMS noch folgende Meldung:

    qmapshack: error while loading shared libraries: libproj.so.22: cannot open shared object file: No such file or directory


    Habe ich mit export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY gefixt...


    Soweit läuft dann alles...

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • HI, also langsam bin ich am verzweifeln. In der VM geht das alles Super mit einem neuen Mint läßt sich QMS bauen.

    Aber auf dem Lappi Lenovo X250 stirbt das kompilieren von GDAL nach 1h ab, und als Fehler kommt nur

    GNUmakefile:120 apps-target Fehler2

    Im Moment ratlos, kann doch nicht sein das das nur auf einem neuen Mint geht wo noch kein QMS drauf war. Es kommt auch sonst im Terminal keine andere Fehlermeldung bei GDAL.

    Ach ja die VM läuft auf dem selben Lappi und da gehts.

    Gruß

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • Ja das ist es ja ich hab keine zusätzlichen Infos mehr.

    Bauen tue ich genau nach dieser Anleitung https://altersachse.de/20-linux/qms-kompilieren.php jetzt. Also zuerst QUAZIP dann PROJ und zum Ende GDAL.

    GDAL- configure geht ohne Fehler und bei make kommt dann erst am Ende dieser blöde Fehler.

    Die Anleitung hab ich in der VM schon mehrere Male getestet da geht das alles ohne Probleme, da sind dann auch alle lib Dateien im entsprechenden Ordner und QMS meckert nicht am Ende.

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • So habs jetzt auch auf den produktiv PC probiert, aber wieder nichts. Halte mich doch aber genau an die Anleitung von @anesthesia hab die doch für die Webseite übernommen.

    Code
    /usr/bin/ld: /home/altersachse/y-sources/QMapShack/gdal-3.2.2/.libs/libgdal.so: undefined reference to `proj_crs_get_datum_ensemble'
    collect2: error: ld returned 1 exit status
    make[1]: *** [GNUmakefile:90: gdalinfo] Fehler 1
    make[1]: Verzeichnis „/home/altersachse/y-sources/QMapShack/gdal-3.2.2/apps“ wird verlassen
    make: *** [GNUmakefile:120: apps-target] Fehler 2

    das sind die letzten Zeilen von "make". Dieser Fehler erscheint aber nicht in der VM.

    Alle Archive sind neu von den Servern geholt worden entpackt und gebaut.

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
    Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank...
  • trailsucher

    Hat den Titel des Themas von „QMS lässt sich nicht mehr kompilieren“ zu „(gelöst) QMS lässt sich nicht mehr kompilieren“ geändert.
  • HI,

    Danke noch mal an alle Beteiligten zur Lösungsfindung.

    Also die Anleitung von @anesthesia funktioniert auf einem frischen Debian System ohne Probleme, hab die Nacht mal mein Lappi neu aufgesetzt und das ging.

    Hab das jetzt noch mal detailliert aufgeschrieben für solche Anfänger wie mich. https://altersachse.de/20-linux/qms-kompilieren.php

    Ach ja so kommen auch alle Daten in den Richtigen Ordner noch /usr -- warum Debian das so möchte wo doch der Standard eigentlich /usr/local ist kann ich nicht ganz nachvollziehen das macht alles nur aufwendiger.


    Allerdings geht diese Anleitung nicht auf Systemen wo schon mal QMS drauf war, wie schon oben erwähnt kommen sich die verschiedenen Versionen in die Quere.

    Vielleicht teste ich noch mal ein

    Code
    apt purge gdal-bin libgdal-dev python3-gdal libproj-dev python3-dev libquazip5-1 libquazip5-dev

    und probiere dann noch mal die Anleitung. Falls das geht geb ich noch mal Bericht.

    Ansonsten allen ein schönes Ostern, Gruß

    Montana 700, Oregon700, Dakota20, Android App OruxMaps, QMS (QMapShack) selbst kompiliert, Linux Arch Plasma6, eigene Garmin Karte mittels mkgmap

  • QMS ist das genialste Kartenprogramm, das ich kenne :love::love::love:


    Ich nutze es auf meinem WIN-Rechner (einfache Installation) und auf Linux Mint 19.3 XFCE.

    Die Version in der Distro ist uralt, daher habe ich mit viel Mühen manuell die Vers. 13 kompiliert. Nun wollte ich aktualisieren, bin aber gescheitert.


    :!::!::!: ABER IST GIBT EINE GANZ EINFACHE LÖSUNG FÜR MINT-USER:


    Die Windows-Version 1.15.2 läuft ganz prima unter PlayOnLinux mit Wine 4.0. Ich hoffe, das bleibt auch bei künftigen Versionen so.


    (Einen kleinen Schönheitsfehler habe ich gefunden: die Sortierung der Tracks nach Namen ist nicht korrekt, aber das ist veschmerzbar.)