fataler Fehler C1083: Include-Datei kann nicht geöffnet werden: 'Windows.h': und scons

8

Heute ist offiziell mein erster Tag mit C ++: P

Ich habe Visual C ++ 2005 Express Edition und Microsoft Platform SDK für Windows Server 2003 SP1 heruntergeladen, da ich die Open-Source-Version in die Hände bekommen möchte Enso-Projekt .

Nach der Installation von Scons ging ich also zur Konsole und versuchte, sie mit Hilfe von Scons zu kompilieren, aber ich bekam diesen Fehler:

%Vor%

Nach dem Überprüfen dieser Links:

VS und PSDK

Fügen Sie tiffi.h

hinzu

Wndows .h

Ich habe es geschafft, meine Installation so zu konfigurieren:

Alternativtext http://img404.imageshack.us/img404/9210/vcdirsdq7.png

Und sogar dieses Skript ausführen

Alternativtext http://img404.imageshack.us/img404/5895/registrationcn0.png

Und ich habe es geschafft, die Datei unten in der IDE zu kompilieren.

%Vor%

Aber ich bekomme diese Ausnahme immer noch in der Konsole. Hat jemand Erfahrung mit Scons?

BEARBEITEN

Eigentlich (und ich habe vergessen, Ihnen das zu sagen) habe ich die Eingabeaufforderung mit dem Link "Visual Studio 2005 Command Prompt" gestartet.

Ich nehme an, dass dies die Pfade in Umgebungsvariablen einschließen wird. Gut nach dem Drucken von ihnen finde ich, dass es nicht:

%Vor%

Und sie waren nicht vorhanden, also habe ich diese .bat-Datei erstellt:

%Vor%

Dennoch sieht SCONS nicht, die Vars zu nehmen ... :(

    
OscarRyz 17.10.2008, 03:58
quelle

6 Antworten

8

Die obigen Empfehlungen funktionieren nicht mit scons: scons importiert die Benutzerumgebung nicht (PATH und andere Variablen). Das grundlegende Problem ist, dass Scons keine neuen Versionen von SDKs / VS unterstützt.

Ich arbeite gelegentlich bei scons und arbeite an dieser Funktion ATM. Hoffentlich wird es bald in Scons enthalten sein, aber das Feature ist viel schwieriger zuverlässig zu implementieren, als ich es erwartet hatte, teilweise weil jede sdk / Compiler-Kombination anders ist (und manchmal sogar MS es nicht richtig macht, einige ihrer .bat-Dateien) sind kaputt), also kann ich dir kein Date geben. Ich hoffe, es wird in 1.2 enthalten sein (in ungefähr einem Monat veröffentlicht werden).

    
David Cournapeau 17.10.2008, 05:54
quelle
3

Sie müssen den Include-Dateipfad (und möglicherweise andere Dinge) festlegen. In der Befehlszeile erfolgt dies in der Regel mithilfe einer Stapeldatei, die Visual Studio installiert, namens vsvars32.bat (oder vcvars32.bat für Kompatibilität mit VC6).

Ich kenne mich mit scons nicht aus, daher weiß ich nicht, wie diese Einstellungen am besten für dieses Tool konfiguriert werden, aber für Standard-Makefiles gibt es normalerweise eine Zeile im Makefile, die eine Makrovariable mit dem Include-Verzeichnispfad und festlegt Dieser Makro wird als Teil eines Befehlszeilenparameters in dem Befehl verwendet, der den Compiler aufruft.

Eine weitere Möglichkeit besteht darin, dass der scons-Prozess vsvars32.bat aufruft oder das Skript scons über eine Befehlszeile ausführt, die mit der Batch-Datei konfiguriert wurde.

Kurz gesagt müssen Sie die Dinge, die vsvars32.bat konfiguriert, irgendwie in die scons-Konfiguration bringen.

    
Michael Burr 17.10.2008 04:56
quelle
2

Es wird eine ähnliche Batchdatei (für MSVC 2005) geben, die die Umgebungsvariablen einrichtet:

%Vor%

Schritt 1 : Suchen Sie in den Express-Installationsordnern nach einer ähnlichen Datei

Schritt 2 : Erstellen Sie auf dem Desktop eine Verknüpfung mit diesen Zieldetails und einem entsprechend geänderten Pfad :

%Vor%

Schritt 3: Öffnen Sie die DOS-Eingabeaufforderung über diese Verknüpfung

Die Befehlszeilenerstellung sollte jetzt innerhalb dieses Konsolenfensters funktionieren.

    
jussij 17.10.2008 05:33
quelle
0

Sie zeigen uns, wie Sie Visual Studio für Compilierungen in Visual Studio konfiguriert haben, aber Sie haben uns nicht gezeigt, welche Befehlszeilenumgebung Sie ausprobiert haben. Sorry, ich habe keine Express-Versionen ausprobiert, daher weiß ich nicht, ob sie zusätzliche Startmenü-Verknüpfungen wie Pro und höher erstellen. Wenn Sie eine geeignete Eingabeaufforderung öffnen, deren Umgebungsvariablen bereits festgelegt sind, können Sie in der Befehlszeile kompilieren. Andernfalls müssen Sie die Variablen selbst festlegen oder ein Stapelscript ausführen, um sie bei jedem Öffnen einer Eingabeaufforderung festzulegen.

    
Windows programmer 17.10.2008 04:08
quelle
0

Es wird nett sein, wenn scons das automatisch macht. Im Moment verwende ich dies (Ausführen von einer SDK-Eingabeaufforderung, nicht sicher, ob es einen Unterschied gibt, wenn nach vsvars32.bat ausgeführt wird):

%Vor%     
voxmea 21.11.2008 20:02
quelle
0

Dies funktioniert beim Kompilieren von wxwidgets mit Visual C ++ 2005 Express über die Befehlszeile:

%Vor%

(Verwenden Sie beim Kompilieren die Option / useenv.)

%Vor%

(Nach rechts wechseln.)

%Vor%

Dann benutze ich diese Zeile beim Kompilieren. Ich glaube, fügen Sie einfach /useenv zu Ihren Zeilen hinzu und alles sollte gut funktionieren:

%Vor%     
Xiul 09.02.2009 13:36
quelle