Veröffentlicht 26. Juli 200421 j Hi, ich soll gerade in einem Projekt aus mehreren .c Dateien eine shared librarie mit der Endung .so erstellen. Ich hab auch schon ein wenig gegoogelt, leider nur komische Befehle gefunden, mit denen ich nichts anfangen konnte hier ein paar Beispiele: gcc -fPIC -c xxx.c xxy.c ld -shared -soname yyy.so -o yyy.so xxx.o xxy.o gcc x.o -L . -lfb ich hoffe ihr könnt mir helfen Varrius
26. Juli 200421 j Schau mal hier: http://vergil.chemistry.gatech.edu/resources/programming/c-tutorial/libraries.html
26. Juli 200421 j gcc -fPIC -c xxx.c xxy.c Damit wird eine Objektdatei aus dem Quellcode erzeugt, welche "Position Independent Code" ("PIC") enthält. Dies ist notwendig, um eine Shared Library an eine beliebige Stelle im Speicher laden zu können. ld -shared -soname yyy.so -o yyy.so xxx.o xxy.o Damit wird eine Shared-Library mit dem Namen "yyy.so" aus den Objektdateien "xxx.o und xxy.o" erzeugt und in der Shared-Lib "yyy.so" abgespeichert. gcc x.o -L . -lfb damit linkst Du die Library "fb" (mit dem Namen "libfb.so" bzw. "libfb.a"), welche sich im aktuellen Verzeichnis befindet ("-L.") zu einer Objektdatei mit dem Namen "x.o". Wobei hier eigentlich noch der Name des Programms mit angegeben werden sollte: "gcc -o program x.o -L. -lfb" Nic
27. Juli 200421 j k, das hab ich nun ein wenig verstanden aber wo muss ich diese befehle eingeben, beim "cmd" kennt er die befehle nicht oder muss ich die unter linux oder unix machen :confused:
27. Juli 200421 j Hallo, üblicherweise unter Linux/Unix mit einem installierten gcc (Gnu C-Compiler). Alternativ sollte das auch unter Windows funktionieren, wenn Du "cygwin" als Entwicklungsumgebung installiert hast (http://www.cygwin.com). Nic
28. Juli 200421 j k, das kriegen wir schon hin das problem ist, wir haben eine .so-datei und wollen diese erneuern, finden aber irgendwie die datei zum erstellen nicht (also die .c dateien) besteht die möglichkeit eine solche datei zu "dekompilieren" ?
28. Juli 200421 j besteht die möglichkeit eine solche datei zu "dekompilieren" ? Nur sehr begrenzt. Das ist ungefähr so, als ob du aus einem Hamburger die Kuh rekonstruieren wolltest.
30. Juli 200421 j ich hab den burger mal gegessen und die kuh tod sein lassen nein, wir konnten nun nachvollziehen, wie diese .so erstellt wurde, da wir ein nettes script gefunden haben das problem ist nun, das die neue .so datei von 2,6 auf 2,1 MB "schrumpft" ist, sprich als die datei vor 2 jahren erstellt wurde war sie 2,6MB und heute war sie nur 2,1MB kann das an den seit damals verbesserten compilern liegen? da sich die dateien eigentlich nicht geändert haben dürften bzw. weg sind, da das mit clearcase nachzuvollziehen wäre, wir aber nix gefunden haben
3. August 200421 j Hallo, das kann an vielen Dingen liegen. Eine Möglichkeit ist, dass ihr den Quellcode 1x mit Debugging-Informationen und 1x ohne diese erstellt (compiliert) habt (Compiler-Switch "-g"). Nic
4. August 200421 j kann das an den seit damals verbesserten compilern liegen? da sich die dateien eigentlich nicht geändert haben dürften bzw. weg sind, da das mit clearcase nachzuvollziehen wäre, wir aber nix gefunden haben Kann es durchaus. Aktuelle Versionen des GCC haben ziemlich gute Optimierungen in Richtung Dead-Code-Elimination und Schleifenoptimierung. Zwar ist eine Reduzierung um knapp 20% schon sehr aussergewoehnlich, aber nicht ausgeschlossen.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.