Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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 :D

Varrius

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

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:

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" ?

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 :D

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.