Aktuelle Zeit: 24.05.2013 16:46

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
BeitragVerfasst: 21.11.2011 23:35 
Offline
Benutzeravatar

Registriert: 29.08.2004 20:11
Wohnort: Schweiz
Ramihyn_ hat geschrieben:
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.


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.

Klar ist das ein PB-Bug. Wechsel in Abhängigkeiten und Library-
Namen gehören in Linux zum Alltag. PB ist der einzige Compiler,
den ich kenne, welcher die Libraries selbst linken möchte und dennoch
nicht per pkg-config nachschaut, wo die denn sind.

Ich weiss mir ja zu helfen, aber Linux-Anfänger verstehen solche
Fehlermeldungen, die nicht von PureBasic selbst kommen, einfach
nicht. Da muss noch einiges poliert werden an der Linux-Version :)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
BeitragVerfasst: 21.11.2011 23:57 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
@remi_meier

wie geht das?
Code:
Debug GetEnvironmentVariable("PKG_CONFIG_PATH")

gibt nen Leerstring zurück, genauso wie:
Code:
echo $PKG_CONFIG_PATH

So hab ich das von der dt. Wikepedia verstanden um den Pfad der .pc Dateien zu finden.

Gruß
Thomas

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Mageia 3 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
BeitragVerfasst: 22.11.2011 13:41 
Offline
Benutzeravatar

Registriert: 29.08.2004 20:11
Wohnort: Schweiz
Gemäss Wikipedia steht der Pfad in der Man-Page. Da
steht bei mir
Zitat:
PKG_CONFIG_PATH
A colon-separated (on Windows, semicolon-separated) list of directories
to search for .pc files. The default directory will always be searched
after searching the path; the default is
libdir/pkgconfig:datadir/pkgconfig where libdir is the libdir for pkg-
config and datadir is the datadir for pkg-config when it was installed.

Unter Ubuntu sind die .pc-Files unter "/usr/lib/pkg‐config",
man kann aber mit PKG_CONFIG_PATH noch weitere Orte
für .pc-Files angeben. Z. B. um den aktuellen Pfad hinzuzufügen:
Zitat:
PKG_CONFIG_PATH=./ pkg-config --libs mylib

Der Pfad könnte für jede Distribution unterschiedlich sein.

Was PB machen sollte:
Für jede Library, welche extern benötigt wird (z. B. zlib),
ganz einfach
Zitat:
pkg-config --libs zlib

aufrufen. Das gibt dann alle Linker-Parameter zurück, welche
für das Linken der Library nötig sind.
Wenn man mal den Namen der Library nicht kenn, kann man
alle installierten per
Zitat:
pkg-config --list-all | less

anschauen und die richtige raussuchen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: PB 4.6 Linkerfehler unter OpenSuse 12.1
BeitragVerfasst: 23.11.2011 19:05 
Offline

Registriert: 28.04.2007 03:04
Wohnort: Einhausen, Südhessen
Jetzt kommt keine Fehlermeldung des Linkers mehr! Aber wenn der interne Debugger aktiv ist, kommt die Meldung, es könne nicht mit dem internen Degugger gearbeitet werden, ich solle einen externen Debugger verwenden. Wenn der Debugger ausgeschaltet ist, tut sich nach dem Kompilieren (F5) einfach gar nichts.

Aber jetzt:
Der Quelltext befand sich auf einer VFAT-Partition. Er wurde nämlich unter Windows und Linux übersetzt in das jeweilige Programm (mit wenigen Compilerdirektiven, die Besonderheiten von Linux oder Windows enthielten). Jetzt habe ich den Quelltext in die home-Partition von Linux kopiert und dort funktioniert jetzt alles ohne Fehlermeldunden und auch ein Executable lässt sich wieder erstellen! Auch der interne Debugger läuft wieder. Allerdings wenn man die Importbefehle für die beiden Bibliotheken entfernt, läuft es auch dort nicht. Es lag also nicht nur an der Lokalisation des Quelltextes auf der VFAT-Partition und des Executable auf der Ext4-Partition von Linux. Aber immerhin, mein Programm läuft wieder!

Ich verwende übrigens immernoch konsequent die 32-bit-Versionen von Pb unter Linux und Windows (der Rechner ist 64 bit). Ich wollte ein funktionierendes Systems bisher nicht auf ein neues wechseln, von dem ich nicht weiß, ob es große Vorteile bietet und stabil läuft.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye