Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Statisch ? bzw. ohne Lib

  1. #1
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90

    Statisch ? bzw. ohne Lib

    Tach Folks,

    ich hab folgendes Problem, ich hab ein kleines Progie mit der wxWindows Lib geschrieben.

    Jetzt will ich aber, das ich den leuten nur die Ausführbare Datei geben muss und es läuft. Nicht, aber das Sie die wxWindows lib installieren müssen.

    Geht das mit kompieler Opt ????

    Kleine angaben vielleicht noch :

    gcc 3.2 gentoo
    wxWindows 2.4.0
    Sonst nix :

    PS: Kompiele ich das Proggie unter Windows kann ich es auf anderen Windows PC´s ausführen ohne die Wxlib installiert zu haben.

    Danke im foraus

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Du brauchst die statische Version der Lib und -static davor im Linkerkommando.

    Also wenn die wxWindows Lib libwxwindows.a heißt

    #> g++ -o program -static -lwxwindows -dynamic $(ANDERE_LIBS) $(OBJECTFILES)

    Linkt mit wxwindows statisch, mit den restlichen Libs dynamisch.
    Die "Variablen" musst du durch deine Angaben ersetzen, oder die Variablen im Makefile setzen.

    Allerdings ist das Benutzen von statischem Linken immer fraglich.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90
    Warum ist das fraglich ?

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von dakjo
    Warum ist das fraglich ?
    Die üblichen Sachen halt:

    Programm wird größer -> Laden dauert länger
    Kein In-Memory Codesharing mit anderen Programmen, die ansich die selbe Lib verwenden -> Speicherverschwendung, vorallem wenn das mehrere machen oder das Programm mehrmals gestartet wird.

    Bugfixes und Verbesserungen in der Lib werden nicht automatisch für das statisch gelinkte Programm verfügbar.
    Im Falle eines Security Fixes muss das Programm neu ausgelieftert werden.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90
    Ich habs gerade ausprobiert meine Zeile

    g++ -Wall -static -llibwx_gtk-2.4 `wx-config --static` `wx-config --libs` `wx-config --cxxflags` server_wx -o server_wx

    Jetzt bekomm ich die Fehlermeldung

    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -llibwx_gtk-2.4
    collect2: ld returned 1 exit status

    mach ich aber locate libwx_gtk-2.4 dann find ich sie unter

    /usr/lib/libwx_gtk-2.4.so
    /usr/lib/libwx_gtk-2.4.so.0
    /usr/lib/libwx_gtk-2.4.so.0.0.0

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    du hast lib bei -l dazu geschrieben.
    Es gibt keine liblibwx_gtk-2.4

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

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