Linkerproblem beim erzeugen von DLL's mit dem Borland CBX



  • Hallo,

    beim Erzeugen von DLL's kann der Linker keine Symbole aufloesen, die sich auf Klassen oder Funktionen der C/C++-Standardbibliotheken beziehen. Der Fehler tritt nur bei den exportierten Funktionen der DLL's auf, alle nichtoeffentlichen Funktionen machen keine Probleme. Beispielsweise schreit der Linker nach den Definitionen der Funktionen strlen und memmove, wenn folgende Funktion exportiert wird:

    extern "C" void dummy1() 
    {
      std::string s = "asd";
    }
    

    Wenn die Funktion nicht exportiert wird, kann der Linker die Symbole problemlos aufloesen. Selbiges gilt beim Aufruf von C-Bibliotheksfunktionen:

    extern "C" void dummy2()
    {
      char * str = new char[4];
      std::strcpy(str, "asd");
    }
    

    Hier verlangt der Linker dann natuerlich nach strcpy...
    Was bitte muss ich dazulinken bzw. welche Optione(en) muss ich angeben, damit auch die Symbole in den exportierten Funktionen aufgeloest werden koennen??? Schonmal besten Dank fuer die Hilfe!

    PS: Der verwendete Compiler ist Borlands C++ 5.6.4, als Linker dementsprechend TILink 5.65.



  • Problem zu trivial??? Oder zu obskur? Ein kleiner Hinweis auf moegliche (Denk-)Fehler wuerde schon immens helfen...


Anmelden zum Antworten