Kompilierungsprobleme unter C



  • hi

    leider habe ich derzeit schwierigkeiten mit einer kleinen c-implementierung, die an einer fehlenden Header-Datei scheitert.

    Ich benutze den Compiler MinGW unter Eclipse, habe dafür auch Windows SDK installiert. Die bin-Verzeichnisse sind in der PATH-Umgebungsvariable angegeben.

    ----------------------------------------------------------------------------------
    mingw32-make -f makefile all
    g++ -c UDT.cpp
    In file included from c:/programme/microsoft sdks/windows/v7.0/include/winscard.h:32:0,
    from c:/programme/microsoft sdks/windows/v7.0/include/windows.h:192,
    from c:/programme/postgresql/8.4/include/server/pg_config_os.h:21,
    from c:/programme/postgresql/8.4/include/server/c.h:87,
    from c:/programme/postgresql/8.4/include/server/postgres.h:47,
    from UDT.cpp:11:
    c:/programme/microsoft sdks/windows/v7.0/include/winsmcrd.h:41:0: warning: "FILE_DEVICE_SMARTCARD" redefined
    c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winioctl.h:149:0: note: this is the location of the previous definition
    In file included from c:/programme/postgresql/8.4/include/server/postgres.h:47:0,
    from UDT.cpp:11:
    c:/programme/postgresql/8.4/include/server/c.h:96:21: fatal error: libintl.h: No such file or directory
    compilation terminated.
    mingw32-make: *** [UDT.o] Error 1

    --------------------------------------------------------------------------------

    Ich habe unter Eclipse im include-verzeichnis die include-folders von MinGW, postgresql und windows sdk angegeben und dennoch findet er manche Header nicht. Die fehlende Headerdatei libintl.h liegt im im Verzeichnis c:/programme/postgresql/8.4/include und müsste eigentlich gefunden werden.

    Hat irgendjemand eine Idee? ich habe mich jetzt stundenlang durch Google gekämpft und noch immer keine Lsg gefunden.

    Danke



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke fürs Verschieben. Hat jemand eine Idee?



  • Hi,

    hab jetzt noch das postgresql-bin-Verzeichnis zum Path hinzugefügt und mit CFLAGS die Flags abgefragt, aber auch hier erscheint eine Fehlermeldung.

    Meine makefile-Datei sieht wiefolgt aus:

    all : UDT.o
    g++ -o UDT.exe UDT.o
    UDT.o : UDT.cpp
    g++ -c UDT.cpp

    Egal, was ich in der zweiten Zeile angebe (kann irgendein syntaktischer Mist sein), es taucht immer wieder die gleiche Fehlermeldung(siehe erster Beitrag) auf.

    Gruß Tr.



  • Ich habe nocheinmal das Inkludieren auf #include <postgres.h> zurückgesetzt und trotz der korrekt angegebenen Include-Verzeichnisse unter Eclipse findet er natürlich postgres.h nicht.

    Kann mir irgendjemand helfen?



  • Offenbar setzt er ja gar keine Flags. Wenn du C++-Code kompilierst, dann solltest du die CXXFLAGS setzen. CFLAGS sind für C.



  • rüdiger schrieb:

    Offenbar setzt er ja gar keine Flags. Wenn du C++-Code kompilierst, dann solltest du die CXXFLAGS setzen. CFLAGS sind für C.

    Hi,

    es handelt sich schon um eine C-Implementierung. Die Verwendung von g++ für C dürfte eigentlich kein Problem sein, aber auch meine Änderung auf gcc ändert nichts an den Fehlermeldungen.

    Gruß Tr.



  • Hallo,

    die Fehlerquelle lässt sich nicht finden. Auch wenn ich mit -I dem Compiler den exakten Pfad zum include-Verzeichnis angebe, so wird die Header-datei nicht gefunden.

    😡

    Gruß Tr.


Anmelden zum Antworten