• Hallo,
    ich habe mit DevCpp eine lib erstellt (mylib.a) & diese in das richtige verzeichnis gestellt.
    die benötigten *.h habe ich nach /mylib/include kopiert.
    wenn ich nun die lib verwenden möchte kommt bei jeder funktion aus der lib die Meldung:

    Code
    In function 'xyz-kryptische alphanumerische folge'
      [Linker error] undefined reference to `name-meiner-funktion'

    komischerweise hat das ganze beim Testen (lib-quelltext in einem projekt mit main() ) ohne probleme funktioniert.

    wenn jemand eine Idee hat was ich falsch gemacht habe wäre das super!

  • hast du *.h im cpp file inkludiert?
    hast du das verzeichnis wo *.h liegt beim compilieren angegeben
    hast du die lib zum linken angegeben
    hast du das verzeichnis wo *.a liegt beim linken angegeben

    schlage vor du compilierst zuerst mal nur und dann seperat linken, wenn das funkt dann sinds die ersten zwei schon mal nicht.

    david

    I like Toast!

  • danke,
    aber leider so einfach hat sich das nicht lösen lassen, hier mal das makefile:

    mylib ist das verzeichnis meiner Header, sowie der lib.

    Interessant ist auch das mir für einen einmal verwendeten Destruktor gleich dreimal der Linker error angezeigt wird.

    Kann das problem dadurch entstehen das ich 2 headerdateien für 1 lib verwende?

    edit: Hab das ausprobiert, auch wenn ich nur eine *.h verwende, und diese genauso heist wie meine *.a kommt der gleiche fehler -> eigentlich eh klar.:coolsmile

  • Wenn sich der gcc unter DOS gleich verhält wie unter Unix (was ich stark annehme), dann brauchst du nicht nur -L, sondern auch -l.
    -L gibt an, wo nach Libraries gesucht werden soll, aber *welche* Libraries du wirklich verwenden willst, mußt du auch noch extra mit -l angeben. Also wenn dein File libfoo.a heißt, dann tu noch -lfoo dazu. Wenn der Name des Files nicht wie übrlich mit lib anfängt, brauchst du noch irgendeinen zusätzlichen Flag.

    *plantsch*

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!