Làm cách nào để biên dịch ứng dụng 64 bit bằng Visual C ++ 2010 Express?


128

Có cách nào đơn giản để biên dịch ứng dụng 64 bit với phiên bản 32 bit của Visual C ++ 2010 Express không? Những cấu hình nào, nếu có, là cần thiết?

Câu trả lời:


181

Dưới đây là hướng dẫn từng bước:

  1. Tải xuống và cài đặt Bộ công cụ phát triển phần mềm Windows phiên bản 7.1. Visual C ++ 2010 Express không bao gồm trình biên dịch 64 bit, nhưng SDK thì có. Liên kết đến SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Thay đổi cấu hình dự án của bạn. Chuyển đến Thuộc tính của dự án của bạn. Trên đầu hộp thoại sẽ có menu thả xuống "Cấu hình". Đảm bảo chọn "Tất cả cấu hình." Cũng sẽ có một trình đơn thả xuống "Nền tảng" sẽ đọc "Win32." Cuối cùng bên phải có nút "Trình quản lý cấu hình" - nhấn nó. Trong hộp thoại xuất hiện, tìm dự án của bạn, nhấn thả xuống Nền tảng, chọn Mới, sau đó chọn x64. Bây giờ thay đổi menu thả xuống "Nền tảng giải pháp hoạt động" thành "x64." Khi bạn quay lại hộp thoại Thuộc tính, trình đơn thả xuống "Nền tảng" bây giờ sẽ đọc "x64."
  3. Cuối cùng, thay đổi bộ công cụ của bạn. Trong menu Thuộc tính của dự án của bạn, bên dưới Cấu hình Thuộc tính | Chung, thay đổi Bộ công cụ nền tảng từ "v100" thành "Windows7.1SDK".

Những bước này đã làm việc cho tôi, dù sao. Một số chi tiết khác ở bước 2 có thể được tìm thấy trong một tài liệu tham khảo từ Microsoft mà một poster trước đó đã đề cập: http://msdn.microsoft.com/en-us/l Library / 9yb4317s.aspx .


2
Xin chúc mừng - câu trả lời của bạn vừa kiếm được cho bạn 275 rep. Cảm ơn cho một câu trả lời tuyệt vời!
Nathan Osman

Tôi có Windows XP nhưng SDK dành cho Windows 7. Điều này có còn hoạt động không?
0x499602D2

@ 0x499602D2: Tôi không biết. Tôi hy vọng rằng nếu các phiên bản Visual C ++ và SDK giống nhau, thì nó sẽ như vậy. Bạn đã thử à?
Matt

2
Điều này chỉ hiệu quả với tôi sau khi cài đặt các bản vá 3 và 4 được đề cập ở đây: stackoverflow.com/a/8334985/429873
Dmitry Trofimov

1
@Matt: tất cả đều hoạt động với tôi trên WinXP 64 bit. Lý do để thay đổi Bộ công cụ nền tảng thành Win7.1SDK là gì?
IgorStack

48

Theo mặc định, các công cụ 64 bit không có sẵn trên Visual C ++ Express. Để bật các công cụ 64 bit trên Visual C ++ Express, hãy cài đặt Bộ công cụ phát triển phần mềm Windows (SDK) bên cạnh Visual C ++ Express. Mặt khác, xảy ra lỗi khi bạn cố gắng định cấu hình dự án để nhắm mục tiêu nền tảng 64 bit bằng Visual C ++ Express.

Cách: Định cấu hình Dự án Visual C ++ để nhắm mục tiêu Nền tảng 64 bit

Tham chiếu: http://msdn.microsoft.com/en-us/l Library / 9yb4317s.aspx


cái này có sẵn cho VB 2010 Express không?
Remus Rigo

Vì một số lý do, $ của tôi (WindowsSdkDir) dường như không hoạt động đúng nhưng một khi tôi đã thêm vào các đường dẫn tuyệt đối theo cách thủ công thì nó đã hoạt động được.
rogerdpack

5
Sau khi làm theo hướng dẫn, tôi tiếp tục nhận các trang thuộc tính trống cho nền tảng x64. Tôi đã phải cài đặt bản cập nhật trình biên dịch ở đây . Thêm thông tin tại KB2519277 .
kipkennedy

14

Và hãy chắc chắn rằng bạn tải xuống Windows7 .1 SDK, không chỉ Windows 7. Điều đó khiến tôi rất nhiều đập đầu.


9

Tôi đã tìm thấy một bước quan trọng để thêm vào điều này - sau khi bạn đã cài đặt SDK, hãy chuyển đến thuộc tính dự án của bạn và thay đổi Thuộc tính cấu hình-> Chung-> Công cụ nền tảng từ v100 hoặc bất cứ thứ gì có trong Windows7.1SDK. Điều này thay đổi $ (WindowsSdkDir) thành vị trí thích hợp và dường như cũng giải quyết được một số khó khăn khác mà tôi gặp phải.


5

Lưu ý rằng trình biên dịch Visual C ++ bị xóa khi bạn nâng cấp Visual Studio 2010 Professional hoặc Visual Studio 2010 Express lên Visual Studio 2010 SP1 nếu Windows SDK v7.1 được cài đặt.

Để biết hướng dẫn giải quyết vấn đề này, hãy xem KB2519277 trên trang web Hỗ trợ của Microsoft.


5
Điều này sẽ được phục vụ tốt hơn như là một nhận xét vì nó không thực sự trả lời câu hỏi trong tầm tay.
Chó săn an ninh

4

Tải xuống Windows SDK và sau đó đi đến Xem-> Thuộc tính-> Trình quản lý cấu hình-> Nền tảng giải pháp hoạt động-> Mới-> x64.


1
chương trình để chạy là gì? Tôi không tìm thấy bất kỳ chương trình nào có "Chế độ xem" khả dụng
Stéphane Laurent

3

Lập trình trong môi trường 64 bit khá khác so với môi trường 32 bit. Mã được tạo ra có hiến pháp lắp ráp hoàn toàn khác nhau trong mã 32 & 64 bit, ngay cả các giao thức giao tiếp với các chức năng cũng thay đổi. Vì vậy, bạn không thể tạo mã 64 bit bằng trình biên dịch 32 bit.

Bạn có thể muốn xem một bài viết trên trang web của Microsoft về việc nhắm mục tiêu mục tiêu 64 bit nhưng sử dụng máy phát triển 32 bit.


Câu trả lời được đưa ra là theo Tài liệu Intel
perilbrain

Đúng, bất kỳ sự phụ thuộc nào cũng sẽ phải được biên dịch lại bằng trình biên dịch 64 bit, hoặc bước liên kết sẽ thất bại.
rogerdpack 17/212

2

Như những gì Jakob đã nói: windows sdk 7.1 không thể được cài đặt nếu thời gian chạy của MS VC ++ x64 và x86 và redisrtibutables của phiên bản 10.0.40219. Sau khi gỡ bỏ chúng, cài đặt sdk không sao, VS C ++ SP1 có thể được cài đặt lại.

Trân trọng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.