Wie kann ich die kompilieren für windows XP unter windows 7 / visual studio 2008
Ich bin unter Windows 7 und Visual Studio 2008 Pro und versucht, meine Anwendung funktioniert auf Windows XP SP3.
Es ist eine wirklich minimale Kommandozeilen-Programm, so, sollten haben jeder lächerlich Abhängigkeiten:
//XPBuild.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("Hello world");
getchar();
return 0;
}
Ich habe irgendwo gelesen, dass definieren mehrerer Konstanten, wie Sie winver ein die es mir erlauben sollten zu kompilieren für andere Plattformen. Ich habe noch folgende für meine /D
compiler-Optionen:
;WINVER=0x0501;_WIN32_WINNT 0x0501;NTDDI_VERSION=NTDDI_WINXP
Aber das machte keinen Unterschied. Wenn ich es auf meinem Windows XP Rechner (eigentlich läuft in einem virtualbox) bekomme ich die folgende Fehlermeldung:
Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration falsch ist. Neuinstallation der Anwendung könnte das problem beheben.
Also was habe ich verpasst? Gibt es etwas anderes erforderlich, zum ausführen von MSVC kompiliert Programme oder eine andere compiler-option oder etwas anderes?
int main(){}
, wenn Sie wollen, um zu versuchen, das herauszufinden. Für etwas, das verwendet die standard-Bibliothek, vielleicht: #include <iostream> int main(){std::cout << std::endl;}
Ja, aber ich wollte etwas, das spuckte einige Ausgabe-und hielt inne, bevor er verschwand.
Für was es Wert ist, das kleinste der standard Anwendung int main(){return 0;}
Die
return 0;
ist optional in C99 und C++.
InformationsquelleAutor Jon Cage | 2010-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie verpasst haben, ist wahrscheinlich, dass die VC++ - Programmen benötigen Sie eine runtime installiert werden (es sei denn, Sie link statisch, das ist nicht der Standard) - die Fehlermeldung, die Sie zeigen, ist genau die, die Sie bekommen, wenn Sie nicht in Ordnung.
Versuchen, die Installation der Microsoft Visual C++ 2008 SP1 Redistributable Pack auf dem XP-Rechner - Sie werden wahrscheinlich sehen, dass Ihr Programm funktioniert, ohne änderungen zu löschen.
Oder, alternativ, compile with static runtime-Bibliotheken: gehen Sie zu "Projekt-Eigenschaften -> C/C++ -> Code Generation - > Runtime Library", und wählen Sie die option ohne "DLL" im Namen.
Angenommen: Das ist perfekt.
Ja die Installation von Visual Studio SP1 behebt das problem.
InformationsquelleAutor Michael Madsen
Michael ' s Antwort erklärt, warum es nicht für Sie arbeiten, und was Sie dagegen machen sollte. Mit Bezug auf
WINVER
- Sie ändern sich nicht, etwas über Ihre binäre in dem Sinne, dass es würde plötzlich anfangen zu arbeiten auf XP. Was Sie tun ist, deaktivieren Sie die Funktion, und geben Erklärungen in der Windows-Header-Dateien, die nicht unterstützt werden auf dem OS-version angegebenWINVER
. Dies stellt sicher, dass Sie nicht versehentlich aufrufen z.B. einige Vista-only-Funktion. Sie müssen jedoch nicht streng müssen es - wenn Ihr code verlässt sich auf keine Vista/7-nur Funktionalität, können Sie kompilieren, ohne die NeudefinitionWINVER
, und es wird immer noch funktionieren, auf XP.InformationsquelleAutor Pavel Minaev
Nur die compiler verwenden statische Links in den Projekt-Einstellungen (Project -> Eigenschaften -> Config Eigenschaften -> C/C++ -> Code-Generation -> Ändern Sie die "Runtime-Bibliothek" /MT oder /MTd, anstatt die Standard - /MD oder /MDd)
InformationsquelleAutor marceloC