Kompilieren von 32-bit-Anwendung mithilfe von Visual Studio auf einem 64-bit-Maschine
Ich versuche zu kompilieren eine einfache 32-bit-Anwendung "Hello World" in C geschrieben mit Visual Studio 2010 auf einem 64-bit-Rechner auf einem Windows 7 frisch installieren. Ich habe auch installiert das "Windows SDK für Windows 7 und .NET Framework 4" nach der Installation von Visual Studio.
Ich baute die Anwendung auswählen "Win32" als Plattform. Es funktioniert auf Windows 7 aber wenn ich die Anwendung ausführen, auf meinem 32-bit-Maschine mit Windows XP Professional (frisch installiert, ohne Software und Service-Packs) es scheint funktioniert nicht diese Fehlermeldung bekommen:
"This application has failed to start because msvcr100.dll was not found"
Wenn es nützlich sein kann, Dependency Walker erkennt 2 Fehler (siehe das verlinkte Bild für details):
"Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module."
"Error: Modules with different CPU types were found."
http://img820.imageshack.us/img820/4725/errordp.png (Bild)
Wie kann ich es lösen? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht Vertrauen Dependency Walker auf dieses... Es zeigt deutlich deine exe-Datei ist 32 bit. Dein problem ist mit dem VC-redistributables, die die CRT-dlls - look für vcredist_x86.exe in Ihrem VS-installation. Sie sollten es ausführen, bevor Sie führen Sie Ihre app aus.
Eine weitere Möglichkeit ist statisches linken der CRT. Finden Sie die Option /MT. Wird die exe größer, aber speichern Sie die vcredist Zeug.
Dem Computer auf dem es ausgeführt wird, muss die runtime-Bibliotheken. Sehen Sie diese MSDN-Informationen.
Das problem hier ist die C-runtime verwendet das kompilierte Programm ist, fehlt auf der Windows XP Maschine. Visual Studio 2010 standardmäßig von uns 10.0 (msvcr100.dll) die Laufzeit ist nicht verfügbar unter Windows XP standardmäßig aktiviert. Sie müssen manuell bereitstellen, die C-runtime auf Ihrem Computer, um für Ihr Programm zu laufen.
Sie Lesen möchten, können Sie auf die folgende MSDN-Artikel beschreibt die Probleme rund um die Bereitstellung von C-Anwendungen, die mit Visual Studio 2010
Möglicherweise gibt es weitere 32 /64 Probleme bei der Arbeit, aber das scheint das primäre problem
Den Antworten, die über die Laufzeit-Bibliothek korrekt sind. Eine weitere mögliche Lösung ist den link zu der statischen runtime-Bibliotheken statt, um den DLL-Versionen. Auf diese Weise können Sie erstellen Sie eine ausführbare Datei, die Sie ablegen können, auf jedem Rechner ohne zusätzliche deployment-Probleme.
Es ist ein trade-off, sondern, ohne zu wissen, mehr über Ihre situation, es könnte eine überlegung Wert sein.