Benutzer mit den meisten Antworten
error C1083 "stdafx.h" fehlt/ bei externen *.c dateien

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_BUILDHat Irgendwer ne Idee was falsch läuft?
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
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?
-
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