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;
}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage