Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Westbeam
Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 28.11.2013, 12:10 Titel: Libbass wird nicht gefunden |
|
|
Guten Morgen ihr lieben Programmierer.
Ich habe ein Problem mit der Bass-Lib. Diese wird seltsamerweise nicht gefunden, obwohl sie im per Libpath angegeben Pfad existiert. Beim Kompilieren gibt es auch keine Fehler, erst beim Starten des Programms erscheint die Fehlermeldung.
Zitat: | error while loading shared libraries: libbass.so: cannot open shared object file: No such file or directory |
Aber wieso? Wie kann das sein? Wo kommt das her? Wieso findet er die lib nicht? Wieso ist das so? Wie kann ich das lösen? Wie verhindere ich dieses Fehler?
mfg, Westbeam |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.11.2013, 14:45 Titel: |
|
|
Also ich hab das früher so gelöst...
Code: | #!/usr/bin/env sh
export LD_LIBRARY_PATH="./"
chmod +x programmname
./programmname
|
Da es von BASS viele (unter umständen zueinander inkompatible) Versionen gibt, würde ich die Bibliothek nicht in ein Bibliothekverzeichnis packen, sondern in das Anwendungsverzeichnis und dann das obige Shell-Skript verwenden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Westbeam
Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 28.11.2013, 15:01 Titel: |
|
|
Wäre eine Möglichkeit, danke erstmal. Aber geht es auch Programmintern? Also ohne extra Script? |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.11.2013, 15:19 Titel: |
|
|
Zumindest vor ein paar Jahren konnte man den library path nicht direkt in FB oder im Compiler setzen. Ich weiß aber nicht, ob sich da was getan hat. Mit dem GCC-Backend müsste das ja theoretisch möglich sein. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4609 Wohnort: ~/
|
Verfasst am: 28.11.2013, 16:46 Titel: |
|
|
Unter Linux kann man compilieren mit
Code: | fbc meinprogramm.bas -l meineBibliothek -Wl --rpath,./ |
Scheint aber nur zu gehen, wenn der relative Pfad ./ genommen wird, also wenn die Bibliothek im Stammverzeichnis des Programms liegt. Genauer gesagt kann ich auch einen anderen Pfad angeben und er sucht trotzdem im Stammverzeichnis.
Unter Windows nicht getestet.
Zitat: | Wie kann das sein? Wo kommt das her? Wieso findet er die lib nicht? Wieso ist das so? |
Das Problem ist (wie die gegebene Lösung ja andeutet), dass nicht der Compiler, sondern der Linker die Bibliothek sucht und sie daher dem Linker mitgeteilt werden muss. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|