Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Statisches Kompilieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.03.2002
    Ort
    St. Pölten
    Beiträge
    32

    Statisches Kompilieren

    Ohne jetzt lange den Sinn zu hinterfragen

    Wie kann ich z.B. "lame" statisch kompilieren, so dass er zur Ausführung keine Shared-Object files mehr braucht?

    Anders ausgedrückt kann man auch sagen, dass "ldd" auf das lame-Binary keine Ausgabe haben darf.

    Bis jetzt hab ich das ganze immer so kompiliert:


    =============
    ./configure --prefix=/usr/local/lame-3.93.1
    make && make install
    =============

    Dass ich damit mein Ziel verfehle weiß ich, nur wie komm ich hin?

    Danke schon im Voraus,
    Rainer

  2. #2
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    bei configure --help sollte sowas wie --enable-static stehen
    I haven't lost my mind - It's somewhere on a backup-disc

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.03.2002
    Ort
    St. Pölten
    Beiträge
    32

    Nein, leider...

    Das wars leider nicht. Ich denk, dass das mit einem Compiler-Flag oder einem Linker-Flag auch funktionieren muss. So ist das Ganze ja vom "configure"-Script abhängig.

    mfg und trotzdem Danke!
    Rainer

  4. #4
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567

    Re: Nein, leider...

    Original geschrieben von detonation997
    Das wars leider nicht. Ich denk, dass das mit einem Compiler-Flag oder einem Linker-Flag auch funktionieren muss. So ist das Ganze ja vom "configure"-Script abhängig.

    mfg und trotzdem Danke!
    Rainer
    Und was ist mit der static-Flag des gcc ?

    Cu
    André
    C und C++

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.03.2002
    Ort
    St. Pölten
    Beiträge
    32

    Wo schreib ich das hinein?

    In welches Makefile muss ich das hineinschreiben, dass er es bei jedem Compilier-/Link-Vorgang verwendet?

    Zuerst hab ichs in "config.status" eingefügt (in jeder Zeile, in der das Wort "flag" vorgekommen ist); dann hab ich "config.status" ausgeführt (ist ja ein Shell-Script). Er hats dann beim Kompilieren offensichtlich auch benutzt (in den meisten Zeilen ist es beim Kompiliervorgang gestanden), aber geändert hat sich am Ergebnis leider noch immer nichts...

    Danke trotzdem!

    mfg Rainer

  6. #6
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90
    Also ich würd sagen ins makefile Makefile
    Code:
    ------>>>|| Gentoo Linux ||<<<------

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Es müsste reichen, vor dem ./configure Aufruf das Flags in der Umgebungsvariable CFLAGS zu positionieren.

    Allerdings bin ich mir nicht sicher, ob das dem automake Framework gefällt, denn es macht ja trotzdem eine dynamische lib.

    Wahrscheinlich müsste man für einen statische Lib etwas in den Makefile.am Dateien ändern, damit dann alle Schritte (Kompilieren, Linken, Installieren) wissen, dass es eine statische lib wird.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  8. #8
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    damit ldd nichts ausgibt müsstest du ja alles bis runter zur libc statisch linken!

    Meinst du das wirklich ernst?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  9. #9
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Hi@all

    Kleine Frage: was soll das statische linken der Libs den bewirken bzw. welchen Vorteil soll das haben? Eine schnellere Laufzeit?

    Cu
    André
    C und C++

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von Berufspenner
    Kleine Frage: was soll das statische linken der Libs den bewirken bzw. welchen Vorteil soll das haben? Eine schnellere Laufzeit?
    Es wir wahrscheinlich schneller starte, weil alle Symbole schon aufgelöst sind, aber bei einem kleine Programm macht das sicher nicht viel aus.

    Sonst bringts eigentlich nix, außer dass man mehr Speicher verbaucht, weil ja das Sharing mit anderen Applikationen damit ausgeschaltet wird.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    es bringt schon noch was...

    wenn ich ein minimalistisches linux habe, dem ich dann auch noch diverse libs runterwerfe, weil ich sie einfach nicht alle für 100 programme brauche... und weil ich dann auch keine gcc libs mehr drauf tun will... undundund....

    dann kann ich dieses programm auch OHNE diese shared libs starten und benutzen... und spare mir dann unterm strich einige mb (in diesem fall wahrscheinlich für einen standalone linux mp3 playa)

    mfg

  12. #12
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ok, in einem auf einen Anwendungszweck festgelegten System hat man natürlich schon Vorteile.

    Meine Aussage galt mehr einem normalen System, Desktop, Workstation oder Server.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •