pkg-config

Der Wolf

Erfahrenes Mitglied
Guten Morgen,

ich versuche nun schon seit zwei bis drei Tagen die libxml++ unter Windows für mein Projekt zum laufen zu bringen und bin bisher nur darauf gestoßen, dass man dafür wohl eher mingw statt cygwin benutzten sollte (fragt mich nicht wo das stand, ich habe soviel gelesen das ich es nicht mehr weiss :( ) Wie auch immer muss man dafür dann wohl auch pkg-config unter mingw zum laufen bringen, aber auch das hat bisher nicht geklappt, trotz verschiedener Hilfen aus dem Internet.

Kann mir da vllt jemand ein paar Tipps zu geben?

Ich habe es nach http://www.mingw.org/MinGWiki/index.php/pkg-config versucht, hat nicht geholfen und dei Readme.Win32 die bei pkg-config dabei ist konnte mir auch nicht helfen. :(

MfG
Der Wolf
 
Also, der genaue Ablaufplan:

1.) MinGw 5.1.3.exe ausgeführt
2.) MSys 1.0.10.exe ausgeführt
3.) msysDTK 1.0.1.exe ausgeführt

Dann habe ich noch wget installiert und dann wie beschrieben pkg-config-0.21.tar.gz in mein C:/mingw (habe standart installationsphad genommen) entpackt, reingewechselt und versucht das ./configure --prefix=`cd /mingw && pwd -W` LDFLAGS=-L${prefix}/bin auszuführen, wobei er dann allerdings immer mekert das er einen absoluten Pfad haben will statt /mingw ... also habe ich cd c:/mingw angegeben, was aber auch nichts geholfen hat.
Wenn ich nur ./configure ausführe läuft er das skript auch durch, allerdings kommen dann beim ausführen von make eine Menge Fehler weil er Dateien nicht findet.
Ich bin leider (noch nicht) so erfahren in Umgang mit diesen Programmen sonst hätte ich die Fehler vllt selber gefunden :rolleyes: , deshalb wende ich mich mit diesen (vllt igen) Fragen hier ans Forum. :)

MfG
Der Wolf
 
Also, der genaue Ablaufplan:

1.) MinGw 5.1.3.exe ausgeführt
2.) MSys 1.0.10.exe ausgeführt
3.) msysDTK 1.0.1.exe ausgeführt

Dann habe ich noch wget installiert und dann wie beschrieben pkg-config-0.21.tar.gz in mein C:/mingw (habe standart installationsphad genommen) entpackt, reingewechselt und versucht das ./configure --prefix=`cd /mingw && pwd -W` LDFLAGS=-L${prefix}/bin auszuführen, wobei er dann allerdings immer mekert das er einen absoluten Pfad haben will statt /mingw ... also habe ich cd c:/mingw angegeben, was aber auch nichts geholfen hat.
Du solltest diese Befehle in MSYS ausführen? Hast du das gemacht? Btw, /mingw ist ein absoluter Pfad.
Wenn ich nur ./configure ausführe läuft er das skript auch durch, allerdings kommen dann beim ausführen von make eine Menge Fehler weil er Dateien nicht findet.
Welche Fehler?

Gruß

PS: Du solltest ja das Makefile ändern? Hast du das gemacht? Dann solltest du noch das Patch für parse.c installieren? Hast du das gemacht?
 
Zuletzt bearbeitet:
Also den Patch für die Parse.c habe ich nicht installiert und makefiles habe ich makefile.am und makefile.in aber nirgends habe ich diese angegebene Zeile gefunden. Habe auch mal aus Notepad++ heraus einfach alle Dateien durchsuchen lassen und die Zeile auch in keiner anderen Datei entdeckt. Nur eine ähnlich, aber wenn ich da den : durch ; ersetzte bringt es auch nichts.
 
Ok. Den ersten Fehler habe ich nun beheben können. Es darf nicht heissen

./configure --prefix=`cd /mingw && pwd -W` LDFLAGS=-L${prefix}/bin

sondern

./configure --prefix=/mingw LDFLAGS=-L${prefix}/bin

Dann wird das Makefile auch erzeugt in der man die Zeile ändern soll.

Jetzt muss ich nur noch das mit dem Patch für die Parse.c verstehen und hoffentlich klappt dann alles. :D
 
Ok. Den ersten Fehler habe ich nun beheben können. Es darf nicht heissen

./configure --prefix=`cd /mingw && pwd -W` LDFLAGS=-L${prefix}/bin
Doch, so sollte es heissen. Du hast wahrscheinlich einen Fehler gemacht und evlt. die falschen Anführungszeichen verwendet... (Hast du es denn abgeschrieben und nicht kopiert+eingefügt?)
Dann wird das Makefile auch erzeugt in der man die Zeile ändern soll.
Ja, das configure Skript ist dazu gedacht von Makefile.in das Makefile zu erzeugen.
Jetzt muss ich nur noch das mit dem Patch für die Parse.c verstehen und hoffentlich klappt dann alles. :D
Du mußt einfach nur in das Verzeichnis wechseln wo die parse.c drin ist und "patch -p0 < patchdatei" aufrufen. Wobei "patchdatei" die Zeilen von der Seite enthält.

Gruß
 
Du mußt einfach nur in das Verzeichnis wechseln wo die parse.c drin ist und "patch -p0 < patchdatei" aufrufen. Wobei "patchdatei" die Zeilen von der Seite enthält.

Gruß

Dann passiert folgendes:

patching file `parse.c'
Hunk #1 FAILED at 997.
patch unexpectedly ends in middle of line
Hunk #2 FAILED at 1014.
2 out of 2 hunks FAILED -- saving rejects to parse.c.rej
 
OK. Offenbar sind ein paar Leerzeichen/Tabs nicht richtig auf der Seite übernommen worden. Und du hast anscheinend den Patch nicht richtig kopiert, da er unerwartet mittendrin endet...

Mit "patch -l -p0 < patchdatei" und der angehängten Datei geht es bei mir.

Gruß
 

Anhänge

Bei mir erscheint immer noch ein

$ patch -l -p0 < patch.txt
patching file `parse.c'
Hunk #1 FAILED at 997.
Hunk #2 succeeded at 1025 (offset 11 lines).
1 out of 2 hunks FAILED -- saving rejects to parse.c.rej

:mad:

Ich bin wohl ein hoffnungsloser Fall. :)
 
Zurück