cannot find 'ld'



  • Guten Tag,
    meine Aufgabe lautet wie folgt:

    Ich soll ein Programm schreiben, welches keine Funktion der Bibliothek math.h, sondern eine
    Intervallschachtelung verwendet, um die Quadratwurzel aus einer Variable x zu ziehen.
    Dieses Verfahren basiert auf der Idee, die Lösung durch eine Folge immer kleiner werdender Intervalle
    einzuschließen. Ist das Intervall schließlich klein genug, um eine beliebig vorgegebene Genauigkeit der
    Lösung zu garantieren, wird das Verfahren abgebrochen. Es sollen also Folgen

    0 ≤ a1 ≤ a2 ... ≤ ak ≤√x ≤ bk ≤ ... ≤ b2 ≤ b1 ≤ x

    In der main-Funktion soll dabei lediglich die Eingabe von x und ε (ich bin mir unsicher, welche Bedeutung ε hier hat) sowie die Ausgabe des Ergebnisses, der Anzahl der benötigten Unterteilungsschritte k und des letzten Intervalls [ak,bk] erfolgen. Die Schachtelung selbst soll in einer geeigneten Funktion stattfinden, welche wiederum geeignete Funktionen für die Bestimmung des Mittelpunktes sowie für die Entscheidung zwischen Ober- und Unterschranke verwendet.
    Die Funktion, welche für die Schachtelung zuständig ist, soll neben der ermittelten Lösung auch die
    Anzahl der benötigen Unterteilungsschritte sowie das ermittelte kleinste Intervall auf geeignete Weise an die
    main-Funktion zurückgeben.

    So bin ich dann auf dieses Programm gekommen:

    #include<stdio.h>
    
    double oberunterschranke(double a, double b, double t, double x){
        if (t*t< x)
            a = t;
        else if(t*t>0)
            b = t;
    
    }
    
    double mittelpunkt (double a, double b, double t, double x){
        t = (a+b)/2;
    
    }
    
    double intervallschachtelung(double a, double b, double x, double t, int k){
    
        while (t*t < x-0,001 || t*t > x-0,001 ,  k++){
            mittelpunkt(a,b,t,x);
            oberunterschranke(a,b,t,x);
        }
    }
    
    void main()
    {
        double x, a = 0, b = x + 1, t;
        int k = 0;
    
        printf("Geben Sie eine positive reelle Zahl ein.");
        scanf("%f\n", &x);
    
        intervallschachtelung(a,b,t,x,k);
    
        printf("Die Quadratwurzel von %f ist %f. \n Für diese Rechnung wurden %d Teilschritte benötigt, sodass das Intervall [%f,%f] betrug", x , t, k, a, b);
    }
    

    Beim debuggen kommt der Fehler cannot find 'ld'.
    Ich habe bestimmt viele andere Fehler in meinem Programm, würde mich aber freuen, wenn mir jemand dabei helfen könnte.

    Danke


  • Mod

    Klingt eher danach, als ob dein ganzes System grundlegende Probleme hat. Das hat nichts mit deinem Programm zu tun. Debugge mal ein Hello-World Minimalprogramm, um das zu bestätigen.



  • ld ist der Linker, d.h. das Programm, welches nach dem Kompilieren (cc, gcc, msvc, ...) aufgerufen wird.
    Welche Kompilierumgebung bzw. IDE verwendest du?



  • @SeppJ Ein Hello-World funktioniert hier auch nicht, was denkst du kann ich dagegen tun?



  • @Th69 Ich benutze Code::Blocks Version 20.03



  • @Kaan02 Code::Blocks ist erstmal nur eine IDE für verschiedenste Compiler.

    D.H. der Compiler muss extra installiert und bei Code::Blocks eingetragen werden.

    Es gibt für Windows eine Version, die den gcc mitbringt und installiert.


  • Mod

    @Kaan02 sagte in cannot find 'ld':

    @SeppJ Ein Hello-World funktioniert hier auch nicht, was denkst du kann ich dagegen tun?

    Keine Ahnung, aber so wissen wir wenigstens erst einmal Bescheid, dass da etwas falsch installiert ist. Ich verschiebe in ein passendes Fachforum.


Anmelden zum Antworten