Benutzer mit den meisten Antworten
Consolenprojekt für x86 compilieren

Frage
-
Hallo,
ich vermisse den Punkt für die "Target Platform" x86. Ich kann mich waage daran erinner, dass der schon mal vorhanden war. Ich hab ein ganz normals Win32 Konsolenprojekt gestarted ohne "precompiled header".
Falls ich mich unklar ausgedrückt haben sollte, hier ein Bild:
http://img825.imageshack.us/img825/3127/projectoptions.png
Ich kann mich daran erinnern, dass hier 2 Auswahlmöglichkeiten vorhanden waren, x64 und 86x. Da ich für einen x86 compilieren möchte, bräuchte ich diesen wieder.
mfg
Antworten
-
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Oktober 2010 07:30
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:12
-
Win32 ist die Targetplatform (x86).
In dem Dialog zum anlegen einer Konfiguration bekommst Du nur angezeigt, was Du noch nicht verwendest.
Deine jetzige Konfiguration ist die x86 (Win32).
Wenn Du diese löscht, dann bekommst Du beim Anlegen einer neuen Konfiguration neben Itanium auch wieder Win32 angeboten.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Oktober 2010 07:30
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:11
-
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:11
Alle Antworten
-
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Oktober 2010 07:30
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:12
-
Win32 ist die Targetplatform (x86).
In dem Dialog zum anlegen einer Konfiguration bekommst Du nur angezeigt, was Du noch nicht verwendest.
Deine jetzige Konfiguration ist die x86 (Win32).
Wenn Du diese löscht, dann bekommst Du beim Anlegen einer neuen Konfiguration neben Itanium auch wieder Win32 angeboten.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Oktober 2010 07:30
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:11
-
danke für die schnelle Antwort. Ich war irgendwie diese Auswahlmöglichkeit gewöhnt:
http://img192.imageshack.us/img192/5558/projectcsharp.png
ist aber nur in c# vorhanden (-:
Da hab ich wohl was verwechselt.
Ich hätte noch eine kleine Nebenfrage:
Es kommt immer wieder vor, dass manche Änderungen in einem include nicht mitcompiliert werden, wenn ich F5 (Debug) benutze. Erst wenn ich "Clean Solution" wähle werden die Änderungen in den Includes mitcompiliert. Ich habe auch schon die Option "Enable Minimal Rebuild" auf "No" gestetzt, allerdings passiert immer noch dasselbe, und dass ist doch recht nervig, wenn man das Programm häufig ändert und erst süäter merkt, dass die Änderungen nicht mitcompiliert wurden. Was mache ich da falsch?
-
-
Bist Du sicher, dass die Header, die in Deine Sourcedateien benutzt werden auch in das Projekt eingefügt wurden?
D.h. die Dateien müssen auch Bestandteil Deines Solution-Baumes sein. Sind solche Header nicht in der Solution, kann man leicht solche Effekte erhalten.Wichtig: Dateien wie die resource.h sind von diesem Verhalten ausgenommen! Solche Ausnahmen werden durch eine Code-Zeile
//{{NO_DEPENDENCIES}}
ausgelöst.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de -
-
Macht das einen
Unterschied?Wie denn das?
Dann werden die CPP Dateien ja separat noch mal kompiliert und inlcuded.Das macht doch keien Sinn.
Ich denke, dass kan ein Problem sein...
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
Yep, habs mal kurz getestet:test.cpp:
#include <iostream> #include "TestKlasse.cpp" using namespace std; void main() { Klasse k; cout << k.testvalue; char c; cin >> c; }
TestKlasse.cpp
class Klasse { public: class Klasse() { testvalue = 5; } int testvalue; };
Wenn ich das ganze jetzt einmal kompilier und dann in Klasse den testvalue auf einen anderen Wert setze, dann wird TestKlasse.cpp nicht neu compiliert und ich krieg den Wert von vorher.
Gibt's eventuell noch irgendwo eine Einstellung, damit ich den Compiler zwingen kann, dass er alles neu compiliert? Enable minimal Build ist schon auf No gesetzt.
-
Das macht doc irgendwie gar keinen Sinn... ändere die Dateierweiterung nach "inc" und verwende nicht "cpp"!
Jochen Kalmbach (MVP VC++)
Warum macht das keinen Sinn? Es ist korrekter c++ Code und ich muss nicht für jede mini Testklasse einen header schreiben, was schon ein wenig zeitaufwendig werden kann, wenn man mehrere verschiedene Sachen testen möchte. Auch wenn ich's inc nenne wird's nicht neu compiliert. -
1. Muss man keinen #include machen um Testklassen zu testen. Du kannst alles in ein Modul (.cpp schreiben) ohne ene #include.
2. Wenn man Klassen in mehreren Modulen benötigt, dann muss ein include in einem Modul erfolgen, dass nicht extern kompiliert wird.
Wenn Du eine CPP Datei einfügst in ein Projekt, dann wird diese Datei separat kompiliert.
3. Wenn sich eine #include Datei ändert (.h .inc etc.) dann wird auch jedes Modul neu kompiliert in dem diese #included wird.
4. Es macht absolut überhaupt Null Sinn, den Code den Du da hast (eine reine Deklaration) in ein CPP Modul zu sezen. Hier wird 0 Code erzeugt.
5. Klassen die reinen inline Code enthalten müssen entsprechend in eine .inc. hpp. .h Datei, oder eine Datei ohne Extension (was den std-Dateien vorbehalten ist).
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de -
Die Testklasse ist ja eine reine inline Klasse (hier nur mit Konstruktor wegen der Einfachheit, aber selbiges Problem existiert auch wenn ich mehrere inline Funktionen hab), ob ich diese nun hpp, inc oder h nenne ändert nichts(ich hab alle 3 Dateiendungen ausprobiert und auch den File Type entsprechend in den Einstellungen geändert). Sie wird trotzdem nicht mitcompiliert, wenn ich in einer "inline" Methode etwas ändere.
-
-
Habs mal hier hochgeladen: http://rapidshare.com/files/423986946/compilertest.zip
Wenn ich in test.cpp etwas ändere, dann wird alles neu kompiliert. Wenn ich in TestKlasse.hpp was ändere, dann wird nichts neu kompiliert, wenn ich das Projekt schon einmal compiliert habe. Das letztere ist mein Problem.
-
Deine Einstellungen für "Precompiled-Heraders" sind falsch...
Stelle diese um:
Project|Properties|Configuration Properties|C/C++|Precompiled Headers
Precopiled Header: Not Using Precompiled HeadersUnd dann würde ich Dir noch empfehlen die "TestKlasse.hpp" nicht unter "SourceFiles", sondern unter "Header Files" einzusortieren.
Jochen Kalmbach (MVP VC++) -
Man merke: die TestKlasse.hpp wir sowieso nie compiliert, da nur die c/cpp-Dateien kopmiliert werden.
Und nach den Änderungen auf "No precompiled header" wirkt sich bei mir eine Änderung in der hpp-Datei beim nächsten starten sofort auf die cpp-Datei aus und es wird der richtige Wert angezeigt!Kann es also nicht mehr nachvollziehen, was Du hier beschreibst! Zumindest nicht, nach der von mir vergeschlagenen Änderungen am Projekt!
Jochen Kalmbach (MVP VC++) -
Ok, ich hab's hier mit den Änderungen nochmal hochgeladen: http://rapidshare.com/files/424026968/compilertest2.zip
Alle Änderungen beziehen sich auf TestKlasse::testvalue. Die ich manuel von Hand im Quellcode auf verschiedene Werte setze:
ich setze testvalue auf 5.
Drücke F5 und bekomme die Ausgabe 5 in der Kommandozeile. (test.cpp wurde kompiliert).
Dann setze ich testvalue auf 7 und drücke F5. In der Kommandozeile bekomme ich den Wert 5 als Ausgabe. (nichts wurde neu compiliert)
Passiert bei mir auch noch nach den vorgeschlagenen Änderungen.
-
- Als Antwort markiert Britneyfearz Samstag, 9. Oktober 2010 21:11