PB 4.6 Linkerfehler unter OpenSuse 12.1
PB 4.6 Linkerfehler unter OpenSuse 12.1
Hallo,
gestern habe ich auf OpenSuse 12.1 umgestellt, alle nötigen Pakete geladen wie angegeben, Checkinstall.pb meldet, es sei jetzt alles wohl korrekt installiert. Dennoch kann ich keines meiner Programme mehr kompilieren, es kommen stets Meldungen mit Linkerfehlern, wie "undefined reference to symbol dlsym@@GLIBC_2.0" und weiteren kryptischen Zusätzen. Es kommen je nach Programm verschiedene Fehlermeldungen, aber keines läuft.
Bis gestern konnte ich die Programme unter Pb 4.6 und OpenSuse 11.4 noch übersetzen und starten.
Hat noch jemand das Problem? Weiss jemand Rat? Aber bitte keinen Vorschlag á la "zurück zu OpenSuse 11.4" oder zu einer anderen Linuxdistribution.
gestern habe ich auf OpenSuse 12.1 umgestellt, alle nötigen Pakete geladen wie angegeben, Checkinstall.pb meldet, es sei jetzt alles wohl korrekt installiert. Dennoch kann ich keines meiner Programme mehr kompilieren, es kommen stets Meldungen mit Linkerfehlern, wie "undefined reference to symbol dlsym@@GLIBC_2.0" und weiteren kryptischen Zusätzen. Es kommen je nach Programm verschiedene Fehlermeldungen, aber keines läuft.
Bis gestern konnte ich die Programme unter Pb 4.6 und OpenSuse 11.4 noch übersetzen und starten.
Hat noch jemand das Problem? Weiss jemand Rat? Aber bitte keinen Vorschlag á la "zurück zu OpenSuse 11.4" oder zu einer anderen Linuxdistribution.
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Das Problem tritt auch in bestimmten Situationen bei anderen Distributionen auf, ist dort aber scheinbar nicht so extrem wie Du es schilderst. Ich hab selber die OpenSuse 12.1 noch nicht getestet. Bei anderen Distributionen gibt es oft einen "hint" wo das Symbol welches nicht gefunden wurde, sich befindet. Der Fehler ist schon mehrfach gemeldet (und leider auch einmal als "Done" abgehakt worden) z.B. hier: http://www.purebasic.fr/english/viewtop ... 23&t=48101
Gefixt werden kann es über eine Import/EndImport Zeile wie z.B.
für die Mathlib. Welche genau Du brauchst, sollte Dir die Fehlermeldung zumindestens grob sagen 
Vielleicht hilft Dir das Beispiel dort im englischen Thread die richtigen Libs zu bestimmen und zumindestens damit erstmal unter OpenSuse 12.1 zu compilen.
Gefixt werden kann es über eine Import/EndImport Zeile wie z.B.
Code: Alles auswählen
ImportC "-lm" : EndImport

Vielleicht hilft Dir das Beispiel dort im englischen Thread die richtigen Libs zu bestimmen und zumindestens damit erstmal unter OpenSuse 12.1 zu compilen.
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Danke für die rasche Antwort.
Aber ich habe es nicht hinbekommen. Ich habe
direkt am Anfang des Programms eingefügt, es kommt die gleiche Fehlermeldung vom Linker. Daraus werde ich aber nicht schlau. Ich habe versucht, sie hier als Grafik einzublenden, es gelingt mir nicht (habe oben IMG gewählt und versucht, es wie einen Codeschnipsel einzufügen, ich kriege es einfach nicht hin). Die Fehlermeldung hatte ich mit ksnapshot ausgeschnitten und als png bzw. jpeg-Datei abgelegt bzw. in die Zwischenablage kopiert. Es gelingt mir aber einfach nicht, diese hier einzufügen. Vielleicht könnte jemand anders daraus schlauer werden?!
Grüße
Aber ich habe es nicht hinbekommen. Ich habe
Code: Alles auswählen
ImportC "-lm" : EndImport
ImportC "-lz" : EndImport
Grüße
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Ich lade Bilder in eigenen Webspace hoch und füge dann die URL per Img oder URL in das Posting ein. Ich weiß grad nicht was die meisten anderen hier benutzen, vielleicht sowas wie Imageshack oder gar Dropbox? 
Schau doch einfach mal in andere Postings welchen freien kostenlosen Service andere dafür nutzen.
Als kleiner Tip zu der Fehlermeldung -da taucht z.b. so eine Zeile auf wie:
es wird also vorgeschlagen libz.so zuzufügen. Nimmt man dann einfach das Kürzel "lib" vorne sowie die Endung ".so" weg und daraus ergibt sich die Flage "-lz" bei dem ImportC. Also im Programm dann die Zeile:
Aus "libm.so" wird dann eben "-lm" und so weiter 

Schau doch einfach mal in andere Postings welchen freien kostenlosen Service andere dafür nutzen.
Als kleiner Tip zu der Fehlermeldung -da taucht z.b. so eine Zeile auf wie:
Code: Alles auswählen
/usr/bin/ld: note: 'inflate' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libz.so so try adding it to the linker command line
Code: Alles auswählen
ImportC "-lz" : EndImport

Zuletzt geändert von Ramihyn_ am 20.11.2011 20:11, insgesamt 1-mal geändert.
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Aha,
jetzt versuche ich es nocheinmal:
Fehlermeldung war:
[img][img]http://www.abload.de/img/fehler7ke0y.png[/img][/img]
Ich hoffe, jetzt kann jeder es aufrufen. Aber verstanden habe ich diese Meldung immer noch nicht. Auch ein
hat nichts geholfen, die Meldung bleibt.
Was jetzt?
jetzt versuche ich es nocheinmal:
Fehlermeldung war:
[img][img]http://www.abload.de/img/fehler7ke0y.png[/img][/img]
Ich hoffe, jetzt kann jeder es aufrufen. Aber verstanden habe ich diese Meldung immer noch nicht. Auch ein
Code: Alles auswählen
ImportC "-dl":EndImport
Was jetzt?
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Fehlt nur das "-l" davor - alsomanke hat geschrieben:Ich hoffe, jetzt kann jeder es aufrufen. Aber verstanden habe ich diese Meldung immer noch nicht. Auch einhat nichts geholfen, die Meldung bleibt.Code: Alles auswählen
ImportC "-dl":EndImport
Was jetzt?
Code: Alles auswählen
ImportC "-ldl" : EndImport
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Hat leider auch nicht funktioniert. Die Fehlermeldung sieht jetzt so aus:

Jetzt habe ich ja schon etwas Übung im Fehlermeldungen hochladen.
Ich habe einfach ein "l" eingefügt hinter den Strich (oder muss noch irgendwo ein Leerzeichen rein?):
Und außerdem, irgendetwas stimmt ja nicht, unter dem alten OpenSuse 11.4 lief ja auch schon alles mit Pb 4.6. Erstaunlicherweise laufen jetzt auch die meisten noch unter OpenSuse 11.4 erstellten Compilate nicht mehr, ein kleines Spiel läuft aber problemlos (lässt sich nur nicht mehr neu kompilieren). Einige Beispiele aus dem Examples Ordner laufen übrigens, z.B. das Canvasgadget.pb. Irgendwie müssen doch einige Bibliotheken unter dem neuen Suse nicht richtig installiert sein, obwohl Checkinstall.sh alles in Ordnung meldet.

Jetzt habe ich ja schon etwas Übung im Fehlermeldungen hochladen.
Ich habe einfach ein "l" eingefügt hinter den Strich (oder muss noch irgendwo ein Leerzeichen rein?):
Code: Alles auswählen
ImportC "-ldl":EndImport
Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
Hat doch funktioniert - das ist die nächste Fehlermeldung

Nun vermisst er beim Linken ein Symbol aus der "libX11.so.6", also die nächste Import Zeile wäre dann:
Code: Alles auswählen
ImportC "-lX11":EndImport
Klar ist da was oberfaul und eine Reihe ImportC Zeilen einzufügen ist auch nur eine Notlösung. Vielleicht hast Du aber auch eine falsche Option zur Kompilation angegeben? Z.B. eine GUI Anwendung versucht als "Console" oder ".so/Library" zu übersetzen? Vielleicht ist es aber auch ein PureBasic Bug beim Linken, da gibt es offenbar mehrere.manke hat geschrieben:Und außerdem, irgendetwas stimmt ja nicht, unter dem alten OpenSuse 11.4 lief ja auch schon alles mit Pb 4.6. Erstaunlicherweise laufen jetzt auch die meisten noch unter OpenSuse 11.4 erstellten Compilate nicht mehr, ein kleines Spiel läuft aber problemlos (lässt sich nur nicht mehr neu kompilieren). Einige Beispiele aus dem Examples Ordner laufen übrigens, z.B. das Canvasgadget.pb. Irgendwie müssen doch einige Bibliotheken unter dem neuen Suse nicht richtig installiert sein, obwohl Checkinstall.sh alles in Ordnung meldet.
Benutzt Du bei der alten und neuen Suse Installation immer 32-bit oder 64-bit Versionen?