dlls erzeugen --> Linker error



  • Hallo liebe Cler,

    Ich möchte in GNU R einen Algorithmus verwenden, für den es bisher leider noch keine R-Bibliothek gibt. Es exisitieren bisher nur zwei .c-Dateien und eine Anleitung wie man die dll-Dateien weiterverarbeitet, welche man aus den c-Dateien gewinnt.

    Und das ist mein Problem: Wie bekomme ich aus den .c-Dateien dlls?

    Ich habe leider gar keine Erfahrung mit c/c++ und konnte daher auch nicht die anderen Posts zu dlls verstehen, in welchen meist selbstgeschriebene Funktionen in dlls umgewandelt werden sollen.

    Ich benutze Dev-C++ als Compiler, habe ein DLL-Projekt eröffnet und in die dllmain.cpp meinen c-Quellcode kopiert. Der Quelltext verwendet Befehle aus der gsl-Bibliothek. Diese habe ich mir als rar-Archiv heruntergeladen und in den "include"-Ordner des Programms kopiert.
    Beim kompilieren bekomme ich zigfach die Fehlermeldung:
    [Linker error] undefined reference to `gsl_vector_view_array'

    Weiß jemand woran das liegt? Bzw. könnte mir jemand eine Anleitung schreiben, wie ich unter einem c-jungfräulichen Windows die dlls erzeuge?

    Oder wenn das etwas ist, wofür man nur ein paar klicks braucht, es aber umständlich zu erklären ist, könnte mir jemand die beiden dateien umwandeln?

    Vielen Dank im voraus,

    Bernhard



  • wayne das gehört hier nich her



  • danke für die nette und konstruktive Antwort...

    Die meisten Suchtreffer zu dll kommen aus diesem Forenbereich bzw der zugehörigen FAQ. Außerdem sind dlls meines Wissens ein spezielles Windows-Problem.

    Wenn ich hier falsch bin, könnte bitte ein Mod den Thread veschieben? Danke.



  • das hört sich so an als ob die gsl selber eine statisch biblithek hat, in der
    die funktionen definiert sind. diese muss man noch bei den linker-einstellungen
    dazubinden (guck mal unter zusätzliche abhängikeiten, additional dependencis,
    etc)

    MfG helferlein



  • ja, das ist eine statistikbibliothek.
    Wenn ich in den Projektoptionen die Bibliothek hinzufügen will, dann sucht / fordert er immer eine ".a", ".lib", ".o" oder ".obj"-Datei, die ich jedoch nicht habe. Wie kreiere / woher bekomme ich die?



  • habe es (glaube ich) geschafft in den projektoptionen die Bibliothek hinzuzufügen. bekomme nun jedoch andere fehlermeldungen:

    multiple definition of `lmtestr(double*, int*, double*, int*, double*, int*, int*, int*, double*, double*, int*)'

    kann das damit zusammenhängen?

    Viele Grüße,
    derda


Anmelden zum Antworten