compilieren mit djgpp



  • Hallo!

    Ich hab ein grösseres C++ - Programm, das ich mit DJGPP kompilieren will. Ich möchte dazu gerne das make-Tool verwenden, das bei DJGPP dabei ist, aber ich komm nicht ganz mit der Verwendung klar. Vielleicht kann mir jemand posten, was ich da reinschreiben muss.
    Mein Programm schaut so aus(drunter schreib ich immer, welche Dateien jeweils inkludiert werden, oder nix, wenn nix inkludiert wird):
    bits.h

    bitvalue.h:
    include "data.h"

    bucket.h

    buckets.cpp:
    include "prime.h"
    include <cmath>
    include <iostream>

    bucketsieve.cpp:
    include "prime.h"
    include "sieve.h"

    config.h:
    include "bitvalue.h"

    count.cpp:
    include "prime.h"
    include "count.h"
    include <iostream>

    count.h

    data.h:
    include "bucket.h"

    label.h

    line_test.cpp:(Hier ist die main-Methode
    include <iostream>
    include <stdlib.h>
    include <iostream>
    include "main_prim.h"

    macro.h:
    include "status.h"

    main_prim.cpp:
    include "main_prim.h"
    include "prim_computer.h"
    include <vector>
    include <iostream>

    main_prim.h

    pgaps.cpp:
    include "prime.h"
    include "count.h"
    include "print.h"
    include "pgaps.h"
    include <cstdlib>

    pgaps.h

    pi.cpp:
    include "data.h"
    include "bitvalue.h"
    include "config.h"
    include <math.h>

    prim_computer.cpp:
    include "prime.h"
    include "prim_computer.h"
    include <stdio.h>
    include <cstdlib>
    include <cctype>
    include <iostream>
    include <cmath>
    include <vector>

    prim_computer.h:
    include "prime.h"

    prim.cpp:
    include "prime.h"
    include "label.h"
    include <iostream>

    prim.h:
    include "bits.h"
    include "bitvalue.h"
    include "bucket.h"
    include "config.h"
    include "data.h"
    include "macro.h"
    include "status.h"
    include <ctime>
    include <fstream.h>
    include <vector>

    print.cpp:
    include "prime.h"
    include "count.h"
    include "print.h"
    include "label.h"
    include <stdio.h>
    include <cstdlib>
    include <iostream>

    print.h

    repfield.cpp:
    include "prime.h"
    include <climits>
    include <cstring>

    search.cpp:
    include "prime.h"
    include <cmath>
    include <iostream>

    set.cpp:
    include "prime.h"
    include <iostream>

    setdata.cpp:
    include "prime.h"
    include <climits>
    include <cmath>

    sieve.cpp:
    include "prime.h"
    include "sieve.h"
    include <cmath>

    sieve.h

    status.h

    store.cpp:
    include "prime.h"
    include "count.h"
    include "print.h"
    include <climits>
    include <cmath>

    Ich weiss, dass das sehr viel Schreibarbeit ist. Es ist auch nicht nötig, dass mir jemand den ganzen MAKE-Code schreibt, sondern vielleicht nur den wichtigsten Ausschnitt, so dass ich mir den Rest selbst zusammenreimen kann. Wichtig für mich wären die includes von den C++ STL Funktionen. Bei mir ist das: cmath, climits, iostream, cstring, cstdlib, stdio.h, vector, fstream.h, ctime, cctype, math.h
    Bei mir ist DJGPP in C:\DJGPP\ installiert.

    Wäre echt dankbar für diese Hilfe.
    Lg
    Christian



  • Das einfachste ist es, wenn du das vom Compiler erledigen läßt. z.B.:

    gpp -MM buckets.cpp

    Das für alle cpp-Dateien machen (kann man mit einer FOR-schleife machen, aber ich weiß nicht mehr, wie das unter DOS bzw. Windows genau geht ...) und du hast es im Prinzip. Am Anfang noch ein Target für das ausführbare Programm einfügen:

    main.exe: buckets.o count.o ...
    gpp -o main.exe buckets.o count.o ...

    Du wirst feststellen, dass hier zweimal alle Objektfiles aufgelistet werden. D.h. um die Sache zu vereinfachen, kann man vorher eine Variable definieren:

    OBJECTS=buckets.o count.o etc.

    und dann:

    main.exe: $(OBJECTS)
    gpp -o main.exe $(OBJECTS)

    naja es gibt noch mehr Tricks, aber das reicht für den Anfang.

    Wichtig für mich wären die includes von den C++ STL Funktionen. Bei mir ist das: cmath, climits, iostream, cstring, cstdlib, stdio.h, vector, fstream.h, ctime, cctype, math.h

    Sind diese Dateien Teil deines Projektes? Änderst du an denen rum? Wenn nicht, brauchst du sie auch nicht als Voraussetzungen für ein Target angeben.


Anmelden zum Antworten