PureBasic UsePNGImageEncoder()

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • PureBasic UsePNGImageEncoder()

      Hi,
      direkt nach dem Aufruf von UsePNGImageEncoder() erhalte ich folgende Fehlermeldung:



      PureBasic - Linker error

      /home/jogo/purebasic/purelibraries/linux/libraries/libpbpng.a(pngrutil.o): In Funktion `png_inflate_claim':
      pngrutil.c:(.text+0x343): Nicht definierter Verweis auf `inflateValidate'
      collect2: error: ld returned 1 exit status


      PureBasic 5.72 / Mint 18.3

      UseJPEGImageEncoder() funktioniert.
      Könnte das jemand bestätigen bzw. dazu einen Tip geben?

      Gruß Jörg

      Ideen gibt es viele - man muß sie nur haben...
      Win7-Pro / Linux Mint
    • Es klingt danach, als würde die Funktion 'inflateValidate' in deiner zlib-Version fehlen. Erst ab Ubuntu 18.04 ist sie wohl vorhanden.

      Der Workaround, den du für den IDE-Start benutzt, bringt hier vermutlich nichts, da der Fehler ja erst beim Kompilieren auftritt. Und der Compiler (bzw. Linker) weiß ja nichts von deiner speziellen zlib-Version und nutzt daher die im globalen Lib-Ordner installierte.

      Ich wüsste jetzt auch keine elegante Lösung hierfür. Eventuell wirst du doch eine neuere zlib-Version global installieren müssen; das birgt halt das Risiko, dass das System danach nicht mehr läuft...
    • ok - da hat mich das kleine Problemchen also wieder eingeholt...

      ich könnte ja mal versuchen die neue libz.so.1.2.11 nach /lib/x86_64-linux-gnu kopieren. Das allein wird aber noch nichts bewirken.
      Der Knackpunkt ist die libz.so.1 - da müßte ich die alte sichern/umbenennen und dann die neue dort hin kopieren.
      Und wenn dann irgendwas klemmt, mach ich das wieder rückgängig.


      Würde das vllt. mit einem Script gehen, das je nach Parameter die gewünschte libz.so.1 zB. aus /home/jogo/zlib/switch/ nach /lib/x86_64-linux-gnu kopiert. Parameter 1 ist halt die Alte / Parameter 2 die Neue.

      Das Script dann mit sudo starten. (oder ohne sudo und das Script in sudoers eintragen)
      Und das mach ich dann nur, wenn der Linker rumheult.

      Natürlich erst mal manuell testen, ob der Plan Sinn macht.

      Was könnte denn im schlimmsten Fall passieren - bleibt das System bedienbar?

      Für welche Sachen ist die zlib eigtl. zuständig?
      Gruß Jörg

      Ideen gibt es viele - man muß sie nur haben...
      Win7-Pro / Linux Mint
    • Zlib ist zuständig für Kompression und dürfte von sehr vielen Anwendungen benutzt werden.

      Jetzt wo ich nochmal nachgedacht habe, ist es doch nicht exakt dasselbe Problem wie mit der IDE: Denn im Falle der IDE ging es ja um eine Shared-Library (also .so Dateiendung) und hier geht es anscheinend um die statische Library (.a Endung). Also Purebasic linked die Anwendung vermutlich statisch gegen Zlib. Von daher würde das Kopieren der Shared-Library gar nichts bringen.

      In dem anderen Thread hattest du erwähnt, dass Purebasic eine eigene "zlib.a" mitliefert. Ich nehme mal an, dass diese dann auch beim Linken verwendet wird. Von daher könnte es sich doch um einen Fehler seitens Purebasic handeln. Du hattest dort auch erwähnt, dass du die zlib.a von Purebasic 5.71 in den neuen Ordner kopiert hast; hast du das mittlerweile rückgängig gemacht?