Wie kompiliere ich eine 64-Bit-Anwendung mit Visual C ++ 2010 Express?

128

Gibt es eine einfache Möglichkeit, eine 64-Bit-App mit der 32-Bit-Edition von Visual C ++ 2010 Express zu kompilieren? Welche Konfigurationen sind gegebenenfalls erforderlich?

Nathan Osman
quelle

Antworten:

181

Hier finden Sie schrittweise Anleitungen:

  1. Laden Sie das Windows Software Development Kit Version 7.1 herunter und installieren Sie es. Visual C ++ 2010 Express enthält keinen 64-Bit-Compiler, das SDK jedoch. Ein Link zum SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Ändern Sie Ihre Projektkonfiguration. Gehen Sie zu Eigenschaften Ihres Projekts. Oben im Dialogfeld befindet sich ein Dropdown-Menü "Konfiguration". Stellen Sie sicher, dass "Alle Konfigurationen" ausgewählt ist. Es wird auch ein Dropdown-Menü "Plattform" mit der Aufschrift "Win32" geben. Schließlich gibt es rechts eine "Configuration Manager" -Taste - drücken Sie darauf. Suchen Sie im daraufhin angezeigten Dialogfeld Ihr Projekt, klicken Sie auf die Dropdown-Liste Plattform, wählen Sie Neu und dann x64 aus. Ändern Sie nun das Dropdown-Menü "Aktive Lösungsplattform" in "x64". Wenn Sie zum Dialogfeld Eigenschaften zurückkehren, sollte das Dropdown-Menü "Plattform" jetzt "x64" lauten.
  3. Ändern Sie abschließend Ihr Toolset. Im Menü Eigenschaften Ihres Projekts unter Konfigurationseigenschaften | Allgemein ändern Sie das Platform Toolset von "v100" in "Windows7.1SDK".

Diese Schritte haben sowieso für mich funktioniert. Weitere Details zu Schritt 2 finden Sie in einer Referenz von Microsoft, die in einem früheren Poster erwähnt wurde: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx .

Matt
quelle
2
Herzlichen Glückwunsch - Ihre Antwort hat Ihnen gerade 275 Wiederholungen eingebracht. Danke für eine tolle Antwort!
Nathan Osman
Ich habe Windows XP, aber das SDK ist für Windows 7. Funktioniert das noch?
0x499602D2
@ 0x499602D2: Ich weiß es nicht. Ich würde hoffen, dass wenn die Visual C ++ - und SDK-Versionen gleich wären, dies auch der Fall wäre. Hast Du es versucht?
Matt
2
Dies funktionierte für mich erst nach der Installation der hier erwähnten Patches 3 und 4: stackoverflow.com/a/8334985/429873
Dmitry Trofimov
1
@Matt: das alles funktioniert bei mir unter WinXP 64bit. Was ist der Grund, das Platform Toolset auf Win7.1SDK zu ändern?
IgorStack
48

64-Bit-Tools sind in Visual C ++ Express standardmäßig nicht verfügbar. Installieren Sie zum Aktivieren von 64-Bit-Tools in Visual C ++ Express zusätzlich zu Visual C ++ Express das Windows Software Development Kit (SDK). Andernfalls tritt ein Fehler auf, wenn Sie versuchen, ein Projekt so zu konfigurieren, dass es mit Visual C ++ Express auf eine 64-Bit-Plattform abzielt.

Gewusst wie: Konfigurieren von Visual C ++ - Projekten für 64-Bit-Zielplattformen

Ref: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

SIE
quelle
ist dies für VB 2010 Express verfügbar?
Remus Rigo
Aus irgendeinem Grund schien mein $ (WindowsSdkDir) nicht richtig zu funktionieren, aber als ich die absoluten Pfade manuell hinzufügte, funktionierte es ein Champion.
Rogerdpack
5
Nachdem ich den Anweisungen gefolgt war, erhielt ich immer wieder leere Eigenschaftenseiten für die x64-Plattform. Ich musste das Compiler-Update hier installieren . Weitere Infos unter KB2519277 .
Kipkennedy
14

Und stellen Sie sicher , dass Sie das Windows7 herunterladen 0,1 SDK, nicht nur das Windows 7 ein. Das hat mich viel Kopfklopfen verursacht.

Jamie Fristrom
quelle
9

Ich habe einen wichtigen Schritt gefunden, um dies hinzuzufügen: Nachdem Sie das SDK installiert haben, gehen Sie zu Ihren Projekteigenschaften und ändern Sie die Konfigurationseigenschaften-> Allgemein-> Plattform-Toolset von Version 100 oder was auch immer in Windows 7.1SDK. Dies ändert $ (WindowsSdkDir) an den richtigen Ort und scheint auch einige andere Schwierigkeiten zu lösen, auf die ich gestoßen bin.

Matt
quelle
5

Beachten Sie, dass Visual C ++ - Compiler entfernt werden, wenn Sie Visual Studio 2010 Professional oder Visual Studio 2010 Express auf Visual Studio 2010 SP1 aktualisieren, wenn Windows SDK v7.1 installiert ist.

Anweisungen zum Beheben dieses Problems finden Sie in KB2519277 auf der Microsoft Support-Website.


quelle
5
Dies wäre besser als Kommentar gedacht, da es die vorliegende Frage nicht wirklich beantwortet.
Sicherheitshund
4

Laden Sie das Windows SDK herunter und gehen Sie zu Ansicht-> Eigenschaften-> Konfigurationsmanager-> Active Solution Platform-> Neu-> x64.

Duduong
quelle
1
Was ist das Programm auszuführen? Ich finde kein Programm mit einer "Ansicht" verfügbar
Stéphane Laurent
3

Das Programmieren in einer 64-Bit-Umgebung unterscheidet sich erheblich von der 32-Bit-Umgebung. Der generierte Code hat im 32- und 64-Bit-Code eine völlig andere Assemblierungskonstitution, selbst die Protokolle für die Kommunikation mit Funktionen ändern sich. Sie können also mit dem 32-Bit-Compiler keinen 64-Bit-Code generieren.

Möglicherweise möchten Sie auf der Microsoft-Website einen Artikel über das Targeting eines 64-Bit-Ziels mit einem 32-Bit-Entwicklungscomputer lesen.

Perilbrain
quelle
Die Antwort ist gemäß der Intel-Dokumentation
Perilbrain
Ja, es ist wahr, dass Abhängigkeiten auch mit dem 64-Bit-Compiler (neu) kompiliert werden müssen, sonst schlägt der Verbindungsschritt fehl.
Rogerdpack
2

Wie Jakob sagte: Windows SDK 7.1 kann nicht installiert werden, wenn MS VC ++ x64- und x86-Laufzeiten und Redisrtibutables der Version 10.0.40219 vorhanden sind. Nach dem Entfernen ist die Installation von Win SDK in Ordnung. VS C ++ SP1 kann wieder ordnungsgemäß installiert werden.

Mit freundlichen Grüßen

Hadrien Huvelle
quelle