Vorkompilierte Headerdateien werden nicht gefunden



  • Hallo zusammen,

    ich habe Visual Studio 2015 deinstalliert und dann Visual Studio2017 Enterprise neu installiert, was auch ohne Fehlermeldung gelaufen ist.

    Jetzt versuche ich eine einfache Konsolenanwendung zu kompilieren und bekomme folgende Meldungen:

    C1083 Die Datei (Include) kann nicht geöffnet werden: “stdio.h“ No such directory

    Als Headerdateien sind stdafx.h und targetver.h im Explorer unter Headerdateien vorhanden.

    In den Projekteigenschaften -> VC++ Verzeichnisse -> Includeverzeichnisse
    steht folgendes:

    (VC_IncludePath);(VC\_IncludePath);(WindowsSDK_IncludePath);

    Weiss jemand, woran es liegen kann?

    Gruß

    Berni

    Hier ist der Code:

    [code="cpp"]

    #include "stdafx.h"

    int main()
    {
    return 0;
    }


  • Global Moderator

    Wurde hier doch schon beantwortet:
    https://www.c-plusplus.net/forum/p2528453#2528453

    Wenn du die dort gegebene Lösung natürlich einfach nicht anwendest (wie deine Antwort auf die Lösung und auch deine Frage hier eindeutig zeigen), dann können wir dir auch nicht weiter helfen.



  • ...wo schalte ich denn 'Vorkompilierte Header' aus?

    ...und was ist, wenn ich die vorkompilierten Header irgendwann mal brauche?

    Besten Dank und Gruß,

    Berni


  • Global Moderator

    pastorek schrieb:

    ...wo schalte ich denn 'Vorkompilierte Header' aus?

    Schlangenmensch schrieb:

    Schmeiß stdafx.h raus und schalte in den Projekteinstellungen "vorkompilierte Header benutzen" aus.

    ...und was ist, wenn ich die vorkompilierten Header irgendwann mal brauche?

    Du wirst sie nie brauchen, das ist rein optional. Wenn du sie irgendwann einmal nutzen möchtest, dann musst du eben vorher lernen, wie man sie richtig nutzt.



  • ...bin gerade Zuhause angekommen und habe hier meinen PC angestellt. Hier habe ich auch vor drei Tagen Visual Studio 2017 installiert. Wenn ich hier eine Konsolenanwendung in C++ erstelle, dann kompiliert er es hier einwandfrei, auch mit den vorkompilierten Headern.

    Wieso läuft es denn hier einwandfrei und auf dem PC a. d. Arbeit nicht?
    Das muss irgendwie daran liegen, dass ich erst Visual Studio 2015 inst. hatte, dann noch Visual Studio 2017, und dann wieder Visual Studio 2015 deinstalliert habe.

    Dabei muss irgendetwas kaputt gegangen sein?

    Vielleicht hat jemand eine Idee was man machen kann?

    Gruß

    Berni



  • Du wirst sie nie brauchen, das ist rein optional.

    Ich würd ja sogar noch weitergehen und behaupten, das das nur spürbar nützlich ist, bei Projokten die Ihr Abhaengigkeits-Management nicht unter Kontrolle haben.

    klar, wenn man standardmässig in alle header kaliber wie windows.h ole.h und konsorten einbinden darf, bzw muss, dann machen die vorkompilierten header das chaos schon etwas erträglicher.
    Aber gescheites Abhängigkeits-Management bringt am Ende mehr ... 🙂

    Dabei muss irgendetwas kaputt gegangen sein?

    Da kann sogar einiges kaputtgehen.

    cpp und h/hpp dateien speichern, projekt löschen
    projekt neu erzeugen und dateien wider überschrieben / zum projekt hinzufügen ...
    wär glaub ich die 1. Methode der wahl, wenn man wenig Ahnung hat wo man zu suchen hat und sich auch nicht mit der Materie wirklich auseinandersetzen will.

    Ohne mehr Infos vom Projektaufbau und stand der Cahce dateien und Systemeinstellungen, log ausgaben etc wird keiner aus der Ferne was genaueres sagen können.

    wo schalte ich denn 'Vorkompilierte Header' aus?

    - beim Anlegen wenn man nen Wizard benutzt kommt ne Abfrage ...

    - alle schon vorhandenen cpp dateien im Projekt durchgehen und unter Eigenschaten->c/c++->Vorkompilierte Header -> Vorkompilierte Header nicht verwenden
    - Auf Projektebene: ->Eigenschaften - oben bei konfigurationen auf Alle Konfigurationen setzen -> c/c++->Vorkompilierte Header -> Vorkompilierte Header nicht verwenden
    Gilt für neue Sourcen die hinzugefügt werden

    - sich weiter mit der Materie beschäftigen und die klicki bunti Konfiguration-Management-Phase über die IDE hiner sich lassen und zu nem gescheiten Buildgenerator wechseln (cmake, qmake , jam ....) da lassen sich vorkompilierte haeder mit einer zeile ein und ausschalten, sofern man die dann noch will ^^