Dev-C++/MinGW: Problem beim modularen Arbeiten



  • Hi,

    ich habe ein Problem beim Erstellen eines Programms mit Dev-C++ (4.9.8.0) bzw. MinGW. Und zwar möchte ich modular arbeiten.

    Als kleinen Test habe ich hier jetzt Sources für drei Files tester.c (Hauptprogramm), test.h (Header-File mit Funktionsdeklaration) und test.c (Code für die Funktion).

    Hier mal die Sources:

    --- tester.c ---

    #include <stdio.h>
    #include "test.h"

    int main(){
    printf("%d",bp_sum(3,4));

    return 0;
    }

    --- test.h ---

    int bp_sum(int a, int b);

    --- test.c ---

    #include "test.h"

    int bp_sum(int a, int b){
    return a + b;
    }

    Also wirklich nur ein ganz simples Beispiel. Bei Dev-C++ sind die Standard-Einstellungen noch drin, andere Programme, die nur aus einem *.c-File bestehen, laufen anstandslos.

    Wenn ich nun compilieren lassen will kommt sofort als Fehlermeldung folgendes:

    ---

    Executing gcc.exe...
    gcc.exe "J:\coding\C\ProgPrak\4\tester.c" -o "J:\coding\C\ProgPrak\4\tester.exe" -I"D:\Dev-Cpp\include" -L"D:\Dev-Cpp\lib"
    D:\DOKUME1\Hauke\LOKALE1\Temp/cciSaaaa.o(.text+0x2a):tester.c: undefined reference to `bp_sum'

    Execution terminated

    ---

    Als Compiler-Message wird "[Linker error] undefined reference to `bp_sum'" angezeigt.

    Auch wenn ich auf die Kommandozeile gehe und "gcc tester.c -o tester.exe" eingebe bekomme ich die "undefined reference to `bp_sum'".

    Was mache ich falsch? Oder was ist noch falsch eingestellt? Wie gesagt, Dev-C++ ist erst frisch installiert. OS ist Win XP. Und den Compiler-Pfad habe ich in den Umgebungsvariablen sicherheitshalber auch mal angegeben.

    Ich weiß einfach nicht mehr weiter :(.

    [ Dieser Beitrag wurde am 16.06.2003 um 17:44 Uhr von BassPlace editiert. ]



  • Hallo!

    Du musst zunächst ein Projekt erzeugen; Mit dem Dev-C++ geht das recht einfach über 'Datei'->'Neu'->'Projekt'. Dem Projekt gibst Du dann einen passenden Namen. Über das Projekt-Menü kann man dann die einzelnen Dateien dem Projekt hinzufügen.

    Ab dann sollte alles passen.



  • mady: besten Dank!! So geht es wirklich :). Freude :)). Aber ich dachte, daß es auch automatisch erkannt werden müßte?! Ich meine, Module sind doch durch diesen Aufbau definiert und sollten somit auch automatisch eingebunden werden? Hm. Bin da vermutlich zu schlecht informiert und zudem C-Anfänger.



  • Naja - Wenn man IDE's verwendet ist es häufig notwendig, mehrere Dateien zu einem Projekt o.ä. zusammenzufassen. Mit der Kommadozeile hast Du das Problem nicht - aber dafür wird es halt weniger komfortabel. Eine Alternative sind make-Dateien; Für einen Einsteiger allerdings nicht besonders empfehlenswert.


Anmelden zum Antworten