Anzeige:
Ergebnis 1 bis 10 von 10

Thema: KDevelop/ Automake Shared Libs

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36

    KDevelop/ Automake Shared Libs

    Hi,
    bei einer Shared Lib habe ich doch immer auch ein Include- File, welches ich dann in einem Programm für den Zugriff auf die Library verwende. (Mit den eigentlichen "public" Funktionen)
    Wie definiere ich in KDevelop bzw. mit Automake diese Datei?

    Danke, TGT

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Was genau meinst du mit definieren?

    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)

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Naja -- eventuell, von der anderen Seite gefragt:
    wie unterscheidet sich "diese eine" Datei von den anderen Header- Dateien?
    Irgendetwas muss die doch können *fg* um mit einer fertig kompilierten Shared- Lib zurechtzukommen. Bzw. die Shared- Lib um mit dieser Datei!

    LG, TGT

  4. #4
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    Nein, die muss gar nichts können. Das ist eine ganz normale Headerfile.
    Es spielt keine Rolle ob die Bibliothek shared oder static ist.
    I haven't lost my mind - It's somewhere on a backup-disc

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Ah - okay, danke

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Hmm, nach kurzzeitigem Abrutschen in die allgemeine Verwirrung, hier die eigentliche(?) Frage:

    Muss ich das Header- File welche die exportierten Funktionen/ Klassen enthält speziell beim Kompilieren angeben! (Wenn ja wo/wie)


    LG TGT

    vielleicht war es auch zu früh

  7. #7
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    gcc -I includedir -L libdir -llib foo.c
    I haven't lost my mind - It's somewhere on a backup-disc

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Das ist nun doch schon für die Verwendung der Library "liblib" in foo.c
    Ich bin noch beim Erstellen der Library!

    Oder ist es allgemein so, dass ich alle Funktionen/ Klassen, welche in der Lib vorkommen, verwenden kann, solange ich ein passendes Header- File dazu habe?


    TGT

  9. #9
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    hä? Ich denk Du willst gegen die Library linken

    Also:
    Du erstellst Deinen Quellcode, der aus .h und .c(pp) Dateien besteht.
    Dann kompilierst Du alle Dateien (ohne Linken).
    Dann linkst Du die Dateien die zu der Bibliothek gehören sollen zusammen.
    (Das Linken und Kompilieren kannst Du auch in einem Schritt machen, ganz egal.)
    Die lib kann dann eine .a oder .so Datei werden, ganz egal. Der einzige Unterschied ist bei der .so, dass Du zusätzliche Parameter beim Linken angeben musst (-shared, -fPIC).
    Dann kannst Du die Bibliothek irgendwem geben und lieferst ihm die Header-Dateien mit, die Du selber schon zum Kompilieren gebraucht hast, damit sein Compiler sieht was es für Funktionen und Datentypen gibt.
    Der Linker vom Empfänger erledigt dann den Rest mit der Bibliothek.
    Der Empfänger kompiliert sein Programm dann so gegen diese Bibliothek wie eben gesagt.
    I haven't lost my mind - It's somewhere on a backup-disc

  10. #10
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Also in kurz: JA
    Alles wird "exportiert" und ich kann auf alles zugreifen von dem ich weiß (Header- Files), dass das es in dieser Lib drinnen ist.

    Okay -- danke.

Lesezeichen

Berechtigungen

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