Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 

MinGW/GCC Bibliotheken neu linken

Diskussion: MinGW/GCC Bibliotheken neu linken im Forum Programmierung, in der Kategorie Tutorials; Anzeige In diesem Tutorial erkläre ich euch, wie man aus statischen Bibliotheken (*.a) DLLs/SOs macht und dabei auch am Modulnamen ...

Antwort
Alt 04.02.11, 16:24   #1 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: K 6-3enkore Leistung: K 6-3enkore Leistung: K 6-3
Likes: 85
Standard MinGW/GCC Bibliotheken neu linken

Anzeige

In diesem Tutorial erkläre ich euch, wie man aus statischen Bibliotheken (*.a) DLLs/SOs macht und dabei auch am Modulnamen rumfummeln kann.

Eigentlich ist das ganze sehr simpel, man braucht nur den GCC, ar und strip (optional). Unter Windows bekommt man so eine Umgebung am einfachsten mit Cygwin und dem von mir empfohlenen TDM-GCC ( http://tdm-gcc.tdragon.net/ , auch als 64-bit Variante. Auf der Seite gibts auch einen Haufen Libs für 64-Bit vorkompiliert...)

Schritt 1: Die Bibliothek besorgen. Findet man in /lib/ oder /mingw<irgendwas>/lib. Die Datei hat die Endung ".a".

Schritt 2: Die Bibliothek in einen vorzugsweise leeren Ordner kopieren.

Schritt 3:

Code:
ar x libMeineLib.a
Damit wird die Bibliothek entpackt. ENTPACKT? Ja richtig, Bibliotheken sind unter GCC und VC mit dem Tool ar zusammengepackte Objektdateien. Bibliotheken von VC (.lib) und GCC (.a) sind unter Windows binärkompatibel. (Ausser bei C++, aber das sollte ja klar sein.)

Schritt 4: Bibliothek neu zusammensetzen.
Code:
g++ -Wl,--out-implib=libGewünschterName.dll.a,--output=NameDerDll.dll *.o --shared
--out-implib setzt den Namen der Importbibliothek, sie wird zum Linken benötgit.
--output setzt den Namen des Agriprodukts äh Binary.
*.o, klar bindet alle Objektdateien im aktuellen Ordner ein (deswegen vorzugsweise leer)
--shared sorgt dafür dass es dann auch ne DLL wird.

Schritt 5: DLL verkleinern
Code:
strip --strip-all NameDerDll.dll
Entfernt alles unnötige von der DLL.

Das sollte übrigens so auch unter Linux gehen. Funktioniert nat. auch für 64-bit Umgebungen...
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++

Geändert von enkore (27.09.11 um 17:15 Uhr)
enkore ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Tutorials & Co. » Tutorials » Programmierung » MinGW/GCC Bibliotheken neu linken
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


LinkBacks (?)
LinkBack to this Thread: http://www.hackerboard.de/programmierung/43294-mingw-gcc-bibliotheken-neu-linken.html
Erstellt von For Type Datum
Das deutsche QBasic- und FreeBASIC-Forum :: Thema anzeigen - Kleine FAQ zum Thema Bibliotheken This thread Refback 04.02.11 22:30


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61