PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Statische Libs mit MinGW erstellen (A-Files)


liquid
2003-09-20, 13:27:22
Tachen Leute!

Bin gerade dabei den Fontteil der GLUT Lib neuzuschreiben (weil das Design doch ein wenig rückständig ist) und will nun die von mir veränderten Source-Files in eine statische Lib linken.
Es soll keine DLL werden, sondern eine A-file. Ich hab die Makefile schon fertig, und er compiled auch alles schön. Dann soll er allerdings ja nicht normal linken, sondern mit ar (das habe ich schon rausgefunden) alle Objectfiles zusammenschnüren, damit ich die A-File danach extern nutzen kann.
Nur welche Parameter übergebe ich AR im Falle von MinGW überhaupt??? Da sind sich die zahlreichen Seiten nämlich nicht ganz einig...

cya
liquid

zeckensack
2003-09-20, 13:36:08
Habe keine Erfahrung damit, aber vielleicht hilft dir die Manpage:
http://www.gnu.org/manual/binutils-2.12/html_chapter/binutils_1.html

zeckensack
2003-09-20, 13:39:20
Ümmmm, vielleicht so???
ar -rc libwhatever.a module1.a module2.a

liquid
2003-09-20, 13:42:50
Hmm, R und C sollten schonmal richtig sein. Er erstellt auch eine Lib, leider nur wenn ich die Optimierung des Compilers ausschalte.
Wenn ich die Optimierung drin habe dann erstellt er gar keine Objectfiles mehr (sondern nur noch ne Datei mit dem Namen "3"). KA was da wieder abgeht.
Werde mal die unoptimiert Version der Library testen, mal sehen obs funzt.

cya
liquid

Gnafoo
2003-09-20, 23:23:18
Original geschrieben von liquid
Wenn ich die Optimierung drin habe dann erstellt er gar keine Objectfiles mehr (sondern nur noch ne Datei mit dem Namen "3").
Leerzeichen zwischen "-O" und "3" ? .. sollte "-O3" sein.

cu DerTod

liquid
2003-09-21, 15:26:31
Dank nochmal an alle, die hier gepostet haben. Tod hats erraten, der Optimierungsparameter war etwas durcheinandegeraten. Ich hab das Ohhh leider klein geschrieben, dass hat er nicht mehr geschluckt.

Jedenfalls hab ich jetzt meine Library fertig gemacht, lässt sich prima einbinden (über externs), musste jedoch auf den C-Dateien CPP-Dateien machen, sonst hat er sie (auch über extern "C") nicht richtig eingebunden. Die Pointer auf die Objekte in der Lib waren im Debugger immer Null-Pointer, KA woran das liegen kann. Jedenfalls funzt das ganze jetzt als CPP-Code.

cya
liquid