Gast
#1438605
Ich versuche auf Basis des DSTni-Prozessors eine C++ Umgebung zu
etablieren und habe ein Linker-Problem.
Ich verwende den Borland C++ 5.2 und eigene LIBs für den verwendeten
Prozessor (Lantronix XPort). Das CPK (das ist die Entwicklungsumgebung)
ünterstützt keine dynaschische Speicherverwaltung. Könnte man ja selber
schreiben...
Problem: Der Linker kann "new" und "delete" nicht aufgelösen, die ich
mir in einem kleinen C-Modul hinzu-definiert habe. -> Siehe MAP-File <-
Im MAP-File finde ich "NEW" und "DELETE". Habe schon alle
Compiler-Switches ausprobiert. Den Linker habe ich auf
"nicht-case-sensitiv" gestellt. Kein Erfolg.
Hat jemand ne Idee für die Lösung meines Problems ?
Compilerflags:
CPP: -P -1 -d -O -Oc -Ol -Z -c -ms -a-
C : -u- -1 -d -O -Oc -Ol -Z -c -ms -a-
Linkerflags: /n /s
---- TestCpp.cpp ----
#ifdef __cplusplus
extern "C" {
#endif
class CMyClass
{
public:
CMyClass(int a, int b);
~CMyClass();
private:
char m_Test;
};
CMyClass::CMyClass(int a, int b)
{
}
CMyClass::~CMyClass()
{
}
#ifdef __cplusplus
}
#endif
---- CppSupp.c ----
int delete(void near* Ptr)
{
if (Ptr) return 0;
return 1;
}
unsigned int near *new(unsigned int Size)
{
return (unsigned int *)0;
}
----- Mapfile extrakt --------
0000:0135 idle NEW
0000:013C idle DELETE
.
.
0000:014E idle cmyclass::cmyclass(int,int)
0000:0174 idle cmyclass::~cmyclass()
.
.
Error: Undefined symbol operator delete(void near*) in module
TESTCPP.CPP
Error: Undefined symbol operator new(unsigned int) in module TESTCPP.CPP