problem beim linken
-
ich kenne mich noch nicht so gut mit c++ builder 2009 aus. habe hier ein open source code aus internet geladen, in vc++ hatte ich kein problem gehabt, doch beim c++ builder 2009 habe ich ein problem beim linken.
[ILINK32 Error] Error: Unresolved external '__strdup' referenced from
strdup ist in _str.h zu finden.
weiss jemand wie ich das fixen kann?
-
bc09neu schrieb:
strdup ist in _str.h zu finden.
In _str.h steht allerdings:
#if defined(__MSC) && !defined(__MFC_COMPAT__) ... #define _strdup(s1) strdup(s1) ... #endif /* __MSC */ #if defined(__MFC_COMPAT__) ... __inline char _FAR * _RTLENTRY _strdup(const char _FAR *__s) { return strdup(__s); } ... #endif
Wenn also die MFC-Kompatibilität eingeschaltet ist (dazu sollte es einen Compiler-Switch geben, oder aber du definierst das Makro selbst), dann gibt es eine Inline-Definition für _strdup, die wiederum strdup aufruft. Das heißt aber, daß die Objektdatei eigentlich gar keinen Verweis auf _strdup haben dürfte (der doppelte Unterstrich in der Fehlermeldung kommt daher, daß C-Funktionen ein zusätzlicher Unterstrich hinzugefügt wird).
Kannst du in deinem Quelltext mal die Stelle suchen, wo _strdup verwendet wird, und die IDE nach der Definition suchen lassen (Strg+Klick oder Alt+Pfeiltaste oben) und sagen, wo genau du landest?