Compilation lauffähiger Executables (g++/ VS 2010)
-
Salvete,
mit einem peinlichen Beitrag bitte ich heute im Hilfe. Ich möchte von einem Projekt ausführbare Executables (Binaries) anbieten für Win/OS X/Linux.
Mein Projekt benötigt libharu, libpng, libz (nicht zlib) und damit wohl auch libstd++. Da die Programme auch auf Systemen von Nutzern laufen sollen, die diesen ganzen Kram nicht installiert haben, dachte ich, dass das linken mit statischen Bibliotheken wohl das geschickteste sei.
Frage: Wie bekomme ich das mit g++ hin. Insbesondere OS X (aktuelle 10.6 Version, 64bit System) beschwert sich über Probleme mit dynamischen vom System bereitgestellten Bibliotheken, wenn ich das Linkerfag -static nutze (-Wl,-static akzeptiert er erst gar nicht). Hier mal die Fehlermeldungen des Linkers:
ld: warning: unexpected dylib (/usr/local/lib/libpng.dylib) on link line ld: warning: unexpected dylib (/usr/lib/gcc/i686-apple-darwin10/4.2.1/libstdc++.dylib) on link line ld: warning: unexpected dylib (/usr/local/lib/libz.dylib) on link line ld: warning: unexpected dylib (/usr/local/lib/libhpdf.dylib) on link line ld: warning: unexpected dylib (/usr/lib/libSystem.dylib) on link line ld: warning: unexpected dylib (/usr/lib/system/libmathCommon.A.dylib) on link line Undefined symbols: "___dso_handle", referenced from: _pvars in crt1.10.6.o __static_initialization_and_destruction_0(int, int)in ssd.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [ScoreSheetDesigner2011] Error 1
und ich nehme an, dass es unter Linux ähnlich sein wird. Irgendeine Idee, wie man das löst?
- Habt ihr Erfahrungen mit libpng und libz unter Windows/ VS 2010?
Vielen Dank für Hilfe,
G.
-
Wozu soll das -static gut sein?
Geht nicht einfach so etwas wie
g++ a.o b.o c.o -o myprog.exe -lharu -lpng -lz -LPfad/Zu/libharu.a -Landerer_pfad -Lander_pfad
?
-
Hola wxSkip,
habe ich natuerlich auch gehofft, leider aber beschwert sich dann die Datei mit einer Fehlermeldung, wenn auch anderen Rechnern die stdc++ beispeilweise nicht installiert ist (was der normale OS X Nutzer ja nicht unbedingt auf seinem Rechner hat, wenn er nicht XCode installiert hat -- unter Linux/Windows habe ich es noch nicht probiert) ob irgendwelcher dylib Probleme (die genaue Fehlermeldung kann ich bei einem Freund nochmal erfragen).
Gruss,
G.
-
Ich dachte eigentlich, das Problem mit dem Standardlib-Linken gäbe es nur bei MSVC++ unter Windows. Tut mir Leid, da könntest du höchstens noch das Internet bemühen, ich kenne das Problem leider (oder zum Glück?) nicht.