g ++ ohne libstdc ++ - geht das? - ein sehr konfigurierbares leichtes libstdc ++, in dem ich einfach Sachen rausnehmen kann, würde auch den Trick machen
Ich versuche hier etwas Gruseliges. Ich versuche, C ++ - Programme zu schreiben, die mit g ++ von GNU kompiliert wurden, aber ohne Abhängigkeit von libstdc ++ :), aber anscheinend brauche ich das auch für die grundlegendsten Dinge, die es brauchen.
Eine libstdc ++ mit einem konfigurierbaren Funktionsumfang wäre akzeptabel.
Der Befehl, den ich benutze, ist
g++ -nodefaultlibs -fno-rtti -fno-exceptions -lc
hne libstdc ++ bekomme ich:
undefined reference to `operator delete(void*)'
undefined reference to `operator new(unsigned int)'
undefined reference to `vtable for __cxxabiv1::__class_type_info'
undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
undefined reference to `__cxa_pure_virtual'
Diese sind nicht in libc, gibt es also eine wirklich leichte libstdc ++, die genau diese Dinge implementiert?
Mein Testcode, den ich auf diese Weise erstellen möchte, sieht derzeit folgendermaßen aus:
#include <stdio.h>
template <class T>
class X
{
public:
T a;
};
class A1
{
public:
virtual void f() = 0;
virtual ~A1() {}
};
class A2 : public A1
{
public:
virtual void f() {};
virtual ~A2() {}
};
class Y
{
public:
~Y() {}
};
int main()
{
X<int> A;
X<float> B;
Y *C = new Y;
A.a = 12;
B.a = 2.3;
printf("A: %d; B: %f\n", A.a, B.a);
A2 *a2 = new A2;
a2->f();
return 0;
}