none
error C1083 "stdafx.h" fehlt/ bei externen *.c dateien RRS feed

  • Frage

  • Hallo,

    mein Problem ist folgendes:

    Ich entwickle eigentlich Code für Mikrocotroller und FPGAs. Da die Komplexität meiner Algoritmen aber zu groß für das debuggen in den Microkontrollern geworden ist, benutze ich Visual C++ 2012 zum Testen u.s.w.. Bisher habe ich das so gemacht, das immer die entsprechenden *.h und *.c Dateien immer in die Projektverzeichnisse kopiert habe, was auch immer gut funktioniert hat. Durch das viele hin und her mit gleichzeitigem Bearbeiten passieren mir aber auch immer mal wieder Fehler welche dann sau schwer zu finden sind.

    Ich möchte alle Quellcode Dateien zentral speichern (lokal). Also habe ich die Dateien in einem Verzeichnis gespeichert das auserhalb aller Projekte liegt. In den Projekten habe ich folgende Einstellungen vorgenommen:

    - "Vorkompilierte Header" Nicht verwenden

    - "Zusätzliche #using-Verzeichnisse" und

    - "Zusätzliche Includeverzeichnisse" auf meinen Ordner Verwiesen

    - die dateien sdtafx.h und targetver.h in mein verzeichnis kopiert (sind jetzt eigentlich schon doppelt im Projekt verwiesen), die originale hab ich im Projektverzeichnis gelassen

    - die jeweiligen *.c Dateien zum Projekt hinzugefügt

    Wenn ich jetzt versuche zu Complilieren schmeißt er den Fehler:

    Fehler    1    error C1083: Datei (Include) kann nicht geöffnet werden: "stdafx.h": No such file or directory    h:\mein zeug\y.c    3    1    Project1

    Für jede externe Datei in der Sie eingebunden ist. Im Projektexplorer ist die Datei aber wie üblich vorhanden und die *.cpp dateien im Projektverzeichniss werden nicht mit diesem Fehler ausgegeben obwohl die Datei da auch drin ist. Wenn sich die Dateien im Projektverzeichnis befinden tritt der Fehler nicht auf, was aber aus oben genannten Gründen aber nicht mehr praktikabel ist.

    Der relevate Code in den steht ganz oben in den Dateien und sieht so aus:

    #ifdef _MSC_BUILD //

    #include "stdafx.h"
    #include <iostream>
    //using namespace std;

    #else //_MSC_BUILD

    #endif //_MSC_BUILD

    Hat Irgendwer ne Idee was falsch läuft?

    Dienstag, 24. Februar 2015 10:13

Antworten

  • Scheint ein Bug in VC zu sein:

    habe das Projekt aus einer Datensicherung wiederherrgestellt -> Compiliert normal

    anschließend meine *.h und *.c, aus dem Projekt entfernt, in einen externen ordner kopiert, wieder hinzugefügt -> Fehler tritt auf!

    dann habe ich die externen Dateien wieder aus dem Projekt entfernt und diejenigen aus den Projektordnern hinzugefügt -> Fehler tritt immernoch auf!

    • Als Antwort markiert cfisch1 Dienstag, 24. Februar 2015 14:11
    Dienstag, 24. Februar 2015 14:10

Alle Antworten

  • Ok, Habe die statt der stdafx.h die .cpp kopiert. Theoretisch sollte er aber auch die stdafx ausm Projektordner nehmen.

    Nach weiteren absurden Syntax-, Pragma- und anderen Fehlermeldungen in den Standard Bibliotheken habe ich <iostream> entfernt. Jetzt erhalte ich noch folgende Fehlermeldungen vom Linker:

    Fehler    3    error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""int __cdecl dft(int,struct complex_t *,struct complex_t *)" (?dft@@YAHHPAUcomplex_t@@0@Z)" in Funktion "_wmain".    H:\xxx(Projektverzeichnis)xxx\xxx.obj    Projekt1

    Die Entsprechenden .obj Dateien der externen c-Dateien werden aber im Projektordner erstellt. Die Funktion ist nicht extern.

    Weiß jemand was ich noch machen muss?

    Dienstag, 24. Februar 2015 11:15
  • Scheint ein Bug in VC zu sein:

    habe das Projekt aus einer Datensicherung wiederherrgestellt -> Compiliert normal

    anschließend meine *.h und *.c, aus dem Projekt entfernt, in einen externen ordner kopiert, wieder hinzugefügt -> Fehler tritt auf!

    dann habe ich die externen Dateien wieder aus dem Projekt entfernt und diejenigen aus den Projektordnern hinzugefügt -> Fehler tritt immernoch auf!

    • Als Antwort markiert cfisch1 Dienstag, 24. Februar 2015 14:11
    Dienstag, 24. Februar 2015 14:10