Jak skompilować aplikację 64-bitową przy użyciu programu Visual C ++ 2010 Express?

128

Czy istnieje prosty sposób na skompilowanie 64-bitowej aplikacji w 32-bitowej wersji programu Visual C ++ 2010 Express? Jakie konfiguracje, jeśli w ogóle, są konieczne?

Nathan Osman
źródło

Odpowiedzi:

181

Oto instrukcje krok po kroku:

  1. Pobierz i zainstaluj pakiet Windows Software Development Kit w wersji 7.1. Visual C ++ 2010 Express nie zawiera kompilatora 64-bitowego, ale zawiera SDK. Łącze do zestawu SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Zmień konfigurację projektu. Przejdź do Właściwości swojego projektu. W górnej części okna dialogowego pojawi się menu rozwijane „Konfiguracja”. Upewnij się, że zaznaczono opcję „Wszystkie konfiguracje”. Pojawi się również lista rozwijana „Platforma” z nazwą „Win32”. Wreszcie po prawej stronie znajduje się przycisk „Configuration Manager” - naciśnij go. W wyświetlonym oknie dialogowym znajdź swój projekt, kliknij menu rozwijane Platforma, wybierz opcję Nowy, a następnie wybierz x64. Teraz zmień menu rozwijane „Platforma aktywnych rozwiązań” na „x64”. Po powrocie do okna dialogowego Właściwości menu rozwijane „Platforma” powinno teraz mieć postać „x64”.
  3. Na koniec zmień zestaw narzędzi. W menu Właściwości projektu, w obszarze Właściwości konfiguracji | Ogólne, zmień zestaw narzędzi platformy z „v100” na „Windows7.1SDK”.

W każdym razie te kroki zadziałały. Więcej szczegółów na temat kroku 2 można znaleźć w dokumencie firmy Microsoft, o którym wspominał poprzedni plakat: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx .

Matt
źródło
2
Gratulacje - Twoja odpowiedź przyniosła Ci 275 rep. Dzięki za świetną odpowiedź!
Nathan Osman
Mam system Windows XP, ale SDK jest przeznaczony dla systemu Windows 7. Czy to nadal będzie działać?
0x499602D2
@ 0x499602D2: Nie wiem. Mam nadzieję, że gdyby wersje Visual C ++ i SDK były takie same, tak by się stało. Próbowałeś tego?
Matt
2
Ten pracował dla mnie dopiero po zainstalowaniu poprawki 3 i 4 wspomniano tutaj: stackoverflow.com/a/8334985/429873
Dmitry Trofimov
1
@Matt: to wszystko działa dla mnie na WinXP 64bit. Jaki jest powód zmiany zestawu narzędzi platformy na Win7.1SDK?
IgorStack
48

Narzędzia 64-bitowe nie są domyślnie dostępne w programie Visual C ++ Express. Aby włączyć narzędzia 64-bitowe w programie Visual C ++ Express, zainstaluj oprócz programu Visual C ++ Express zestaw Windows Software Development Kit (SDK). W przeciwnym razie podczas próby skonfigurowania projektu pod kątem platformy 64-bitowej przy użyciu programu Visual C ++ Express występuje błąd.

Instrukcje: konfigurowanie projektów Visual C ++ pod kątem platform 64-bitowych

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

TY
źródło
czy to jest dostępne dla VB 2010 Express?
Remus Rigo
Z jakiegoś powodu mój $ (WindowsSdkDir) nie działał poprawnie, ale po ręcznym dodaniu ścieżek bezwzględnych zadziałał mistrzowsko.
rogerdpack
5
Po wykonaniu instrukcji otrzymywałem puste strony właściwości dla platformy x64. Musiałem zainstalować aktualizację kompilatorów tutaj . Więcej informacji na KB2519277 .
kipkennedy
14

I upewnij się, że pobrałeś Windows7 .1 SDK, a nie tylko Windows 7. To spowodowało, że mocno łomotało mi w głowę.

Jamie Fristrom
źródło
9

Znalazłem ważny krok do dodania do tego - po zainstalowaniu SDK przejdź do właściwości projektu i zmień Właściwości konfiguracji-> Ogólne-> Zestaw narzędzi platformy z wersji 100 lub cokolwiek innego na Windows7.1SDK. Zmienia to $ (WindowsSdkDir) we właściwe miejsce i wydaje się, że rozwiązuje kilka innych trudności, z którymi się spotkałem.

Matt
źródło
5

Należy zauważyć, że kompilatory Visual C ++ są usuwane podczas uaktualniania programu Visual Studio 2010 Professional lub Visual Studio 2010 Express do programu Visual Studio 2010 SP1, jeśli jest zainstalowany zestaw Windows SDK w wersji 7.1.

Aby uzyskać instrukcje dotyczące rozwiązania tego problemu, zobacz KB2519277 w witrynie pomocy technicznej firmy Microsoft.


źródło
5
Byłoby to lepiej posłużyć jako komentarz, ponieważ tak naprawdę nie odpowiada na aktualne pytanie.
Security Hound
4

Pobierz Windows SDK, a następnie przejdź do View-> Properties-> Configuration Manager-> Active Solution Platform-> New-> x64.

duduong
źródło
1
jaki jest program do uruchomienia? Nie znajduję żadnego programu z dostępnym "Widokiem"
Stéphane Laurent
3

Programowanie w środowisku 64-bitowym różni się znacznie od środowiska 32-bitowego. Wygenerowany kod ma zupełnie inną strukturę zestawu w kodzie 32 i 64-bitowym, nawet protokoły komunikacji z funkcjami ulegają zmianie. Nie możesz więc wygenerować 64-bitowego kodu za pomocą 32-bitowego kompilatora.

Możesz chcieć zobaczyć artykuł w witrynie sieci Web firmy Microsoft o kierowaniu na 64-bitowy cel, ale przy użyciu 32-bitowej maszyny programistycznej.

perilbrain
źródło
Podana odpowiedź jest
zgodna z
Tak, prawdą jest, że wszelkie zależności będą musiały zostać (ponownie) skompilowane również przy użyciu kompilatora 64-bitowego, w przeciwnym razie krok łącza nie powiedzie się.
rogerdpack
2

Jak powiedział Jakob: nie można zainstalować systemu Windows SDK 7.1, jeśli obecne są środowiska wykonawcze MS VC ++ x64 i x86 oraz pliki redystrybucyjne w wersji 10.0.40219. po ich usunięciu instalacja win sdk jest w porządku, VS C ++ SP1 można zainstalować ponownie.

Z poważaniem

Hadrien Huvelle
źródło