Bagaimana cara mengkompilasi aplikasi 64-bit menggunakan Visual C ++ 2010 Express?

128

Apakah ada cara sederhana untuk mengkompilasi aplikasi 64 bit dengan Visual C ++ 2010 Express edisi 32-bit? Konfigurasi apa, jika ada, yang diperlukan?

Nathan Osman
sumber

Jawaban:

181

Berikut ini petunjuk langkah demi langkah:

  1. Unduh dan instal Kit Pengembangan Perangkat Lunak Windows versi 7.1. Visual C ++ 2010 Express tidak termasuk kompiler 64 bit, tetapi SDK tidak. Tautan ke SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Ubah konfigurasi proyek Anda. Buka Properti proyek Anda. Di bagian atas kotak dialog akan ada menu drop-down "Konfigurasi". Pastikan bahwa memilih "Semua Konfigurasi." Juga akan ada drop-down "Platform" yang bertuliskan "Win32." Akhirnya di sebelah kanan ada tombol "Configuration Manager" - tekan itu. Dalam dialog yang muncul, cari proyek Anda, tekan drop-down Platform, pilih Baru, lalu pilih x64. Sekarang ubah menu tarik-turun "Platform solusi aktif" menjadi "x64." Ketika Anda kembali ke kotak dialog Properties, drop-down "Platform" sekarang seharusnya membaca "x64."
  3. Akhirnya, ubah perangkat Anda. Di menu Properti proyek Anda, di bawah Properti Konfigurasi | Umum, ubah Platform Toolset dari "v100" ke "Windows7.1SDK".

Langkah-langkah ini berhasil bagi saya. Beberapa detail lebih lanjut tentang langkah 2 dapat ditemukan dalam referensi dari Microsoft bahwa poster sebelumnya menyebutkan: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx .

Mat
sumber
2
Selamat - jawaban Anda hanya memberi Anda 275 rep. Terima kasih atas jawaban yang luar biasa!
Nathan Osman
Saya memiliki Windows XP tetapi SDK untuk Windows 7. Apakah ini masih berfungsi?
0x499602D2
@ 0x499602D2: Saya tidak tahu. Saya berharap jika versi Visual C ++ dan SDK sama, itu akan. Apakah kamu sudah mencobanya?
Matt
2
Ini bekerja untuk saya hanya setelah menginstal tambalan 3 dan 4 yang disebutkan di sini: stackoverflow.com/a/8334985/429873
Dmitry Trofimov
1
@ Matt: ini semua bekerja untuk saya di WinXP 64bit. Apa alasan untuk mengubah Platform Toolset ke Win7.1SDK?
IgorStack
48

Alat 64-bit tidak tersedia pada Visual C ++ Express secara default. Untuk mengaktifkan alat 64-bit pada Visual C ++ Express, instal Kit Pengembangan Perangkat Lunak Windows (SDK) di samping Visual C ++ Express. Jika tidak, kesalahan terjadi ketika Anda mencoba mengkonfigurasi proyek untuk menargetkan platform 64-bit menggunakan Visual C ++ Express.

Cara: Mengkonfigurasi Proyek Visual C ++ ke Target Platform 64-Bit

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

KAMU
sumber
apakah ini tersedia untuk VB 2010 Express?
Remus Rigo
Untuk beberapa alasan $ saya (WindowsSdkDir) tampaknya tidak berfungsi dengan baik tetapi begitu saya menambahkan di jalur absolut secara manual itu bekerja juara.
rogerdpack
5
Setelah mengikuti instruksi saya terus mendapatkan halaman properti kosong untuk platform x64. Saya harus menginstal pembaruan kompiler di sini . Info lebih lanjut di KB2519277 .
kipkennedy
14

Dan pastikan Anda mengunduh Windows7 .1 SDK, bukan hanya Windows 7 saja. Itu menyebabkan saya banyak kepala berdebar.

Jamie Fristrom
sumber
9

Saya menemukan langkah penting untuk ditambahkan ke ini - setelah Anda menginstal SDK, buka properti proyek Anda dan ubah Configuration Properties-> General-> Platform Toolset dari v100 atau apa pun itu ke Windows7.1SDK. Ini mengubah $ (WindowsSdkDir) ke tempat yang tepat dan tampaknya untuk menyelesaikan beberapa kesulitan lain yang saya temui juga.

Mat
sumber
5

Perhatikan bahwa kompiler Visual C ++ dihapus ketika Anda memutakhirkan Visual Studio 2010 Professional atau Visual Studio 2010 Express ke Visual Studio 2010 SP1 jika Windows SDK v7.1 diinstal.

Untuk instruksi tentang penyelesaian ini, lihat KB2519277 di situs Dukungan Microsoft.


sumber
5
Ini akan lebih baik disajikan sebagai komentar karena tidak benar-benar menjawab pertanyaan yang ada.
Security Hound
4

Unduh Windows SDK dan kemudian pergi ke View-> Properties-> Configuration Manager-> Active Solution Platform-> New-> x64.

duduong
sumber
1
apa program yang harus dijalankan? Saya tidak menemukan program apa pun dengan "Tampilan" yang tersedia
Stéphane Laurent
3

Pemrograman dalam lingkungan 64-bit sangat berbeda dari lingkungan 32-bit. Kode yang dihasilkan memiliki konstitusi perakitan yang sama sekali berbeda dalam kode 32 & 64-bit, bahkan protokol komunikasi dengan fungsi pun berubah. Jadi Anda tidak dapat membuat kode 64-bit menggunakan kompiler 32-bit.

Anda mungkin ingin melihat artikel di situs web Microsoft tentang penargetan target 64-bit tetapi menggunakan mesin pengembangan 32-bit.

perilbrain
sumber
Jawaban yang diberikan sesuai dengan Intel Documentation
perilbrain
Ya benar bahwa setiap dependensi harus dikompilasi ulang menggunakan kompiler 64 bit juga, atau langkah tautannya akan gagal.
rogerdpack
2

Seperti yang dikatakan Jakob: windows sdk 7.1 tidak dapat diinstal jika MS VC ++ x64 dan x86 runtimes dan redisrtibutables versi 10.0.40219 hadir. setelah menghapusnya, win sdk instal tidak apa-apa, VS C ++ SP1 dapat diinstal dengan baik lagi.

Salam

Hadrien Huvelle
sumber