fatal error: iostream: No such file or directory



  • Hallo Zusammen,

    vorab: Ich habe schon im Forum nach ähnlichen Beiträgen gesucht, aber noch keine Lösung auf mein Problem gefunden.

    Undzwar scheitert bei mir das compilieren eines Programms.
    Es handelt sich um ein C-Programm in dem auch die Methoden aus der Bibliothek von Intel verwenden möchte.

    Bei folgendem Fehler hänge ich:

    In file included from intel/cpucounters.h:31:0,
    from intel/pcm-power.cpp:18,
    from programm.c:30:
    intel/types.h:26:20: fatal error: iostream: No such file or directory

    ...
    #ifndef CPUCounters_TYPES_H
    #define CPUCounters_TYPES_H
    
    #undef PCM_DEBUG
    
    #include <iostream>
    #include <istream>
    #include <sstream>
    #include <iomanip>
    
    ...
    

    Ich kenne mich mit programmieren eigentlich garnicht gut aus, muss das aber für jemanden machen.

    Vielleicht liegt es am compiler ?!

    onfigure.ac:
    AC_PROG_CXX
    ...
    CXXFLAGS="$CFLAGS -Wall -O0 -std=gnu99"
    ...
    

    Hat jemand eine Idee ?
    Wäre sehr dankbar.

    Gruß



  • Das sind alles C++ Includes und keine reinen C, d.h. du mußt den C++ Compiler (z.B. g++) verwenden.
    Oder aber schauen, daß es eine reine C-Bibliothek davon gibt und dessen Headerdateien einbinden.



  • In wiefern muss ich die configure.ac anpassen, damit der richtige compiler verwendet wird?
    Ich bin davon ausgegangen dass mit
    "AC_PROG_CXX" der richtige compiler genutzt wird.
    Und muss ich dann auch die FLAGS anpassen?



  • Habe es nun halbwegs hinbekommen, dass ein c++ compiler verwendet wird und habe mein programm in programm.cpp umbenannt.
    Kann mir jemand bei der Fehlermeldung im Bezug auf den Code weiterhelfen?

    programm.cpp: In function ‘int main(int, char**)’:
    programm.cpp:176:29: error: expected primary-expression before ‘)’ token

    int
    main (int argc, char **argv)
    
    }
    

    Irgendwas fehlt in den Klammern ?!



  • Nur C kennt die Strukturinitialisierung mittels ".name", C++ nicht.

    Nimm für C++ einfach

    setup_t setup = {};
    


  • Th69 schrieb:

    Nur C kennt die Strukturinitialisierung mittels ".name", C++ nicht.

    Nimm für C++ einfach

    setup_t setup = {};
    

    und was mach ich mit dem .regions? wenn du sagst dass c++ das ".name" nicht kennt



  • nikomad schrieb:

    Th69 schrieb:

    Nur C kennt die Strukturinitialisierung mittels ".name", C++ nicht.

    Nimm für C++ einfach

    setup_t setup = {};
    

    und was mach ich mit dem .regions? wenn du sagst dass c++ das ".name" nicht kennt

    Ersetze die Zeilen 4 bis 6 durch das was er geschrieben hat.


Anmelden zum Antworten