Cách xây dựng Qt cho Visual Studio 2010


137

Tôi đã vật lộn để tìm ra cách cung cấp giải pháp ổn định cho việc sử dụng Qt với Visual Studio 2010, vì vậy sau khi thu thập tất cả các thông tin và một số thử nghiệm và lỗi, tôi muốn viết giải pháp của mình vào hướng dẫn.

Vấn đề, hoặc tại sao không thể sử dụng nhị phân dựng sẵn?

Có vẻ như việc sử dụng các nhị phân được xây dựng cho Visual Studio 2008 có thể hoạt động trong một số trường hợp đặc biệt, nhưng tôi thấy chúng không hoạt động. Trong trường hợp của tôi, họ đã biên dịch OK, nhưng chúng tạo ra lỗi thời gian chạy, như thế này:

vấn đề2

hoặc khi bắt đầu từ Visual Studio 2010:

vấn đề

Cập nhật : Tôi tìm thấy một bài đăng blog phân tích lý do tại sao nó hoạt động cho một số người, trong khi nó không dành cho những người khác. Trong một từ, nó phụ thuộc vào việc bạn có cài đặt Visual Studio 2008 trên cùng một máy hay không. http://blog.paulnettleship.com/2010/11/11/troubledhoot-visual-studio-2010-and-qt-4-7-integration/

Điều quan trọng nhất (mà tôi ngu ngốc không nhận ra) là việc bạn KHÔNG THỂ sử dụng các thư viện và dll của Visual Studio 2008 (có sẵn trên trang web Qt) nếu bạn chưa cài đặt Visual Studio 2008. Lý do là bởi vì Qt SDK mà bạn tải xuống là bản dựng gỡ lỗi phụ thuộc vào DebugCRT VC9.0, nghĩa là nó cần cài đặt Gỡ lỗi Visual C ++ 2008, không có sẵn như là trình cài đặt có thể phân phối lại. Cách duy nhất để cài đặt DebugCRT là cài đặt toàn bộ Visual Studio 2008.


Cảm ơn nỗ lực của bạn. Ngoài ra, có thể hữu ích để giải thích lý do tại sao người ta không nên sử dụng nhị phân VS 2008. Tôi đã phát triển một số dự án thử nghiệm nguyên mẫu với họ và VS2010 mà không gặp phải bất kỳ vấn đề nào, nhưng tôi có nhớ ai đó đề cập rằng có vấn đề triển khai không?
Ralf

Tôi đã thêm kinh nghiệm của tôi vào phần cuối cùng. Nói chung, tôi đã tìm thấy rất nhiều báo cáo trên mạng cho bạn biết rằng bạn phải biên dịch Qt nếu bạn muốn sử dụng nó với VS2010. Có một trang cho bạn biết rằng đó có thể là sự hiện diện của VS2008.
hyperjack

Thật tuyệt vời, tôi chắc chắn nhiều người sẽ thấy điều này hữu ích :)
Ralf

Này, đây là những gì tôi nhận được khi tôi làm nmake. Tôi đã sử dụng như sau trước khi thử xây dựng : configure.exe -release -no-ltcg.
Mateen Ulhaq

2
Để tham khảo trong tương lai, bạn có thể muốn biết trang web tài liệu Qt thực sự có hướng dẫn cài đặt để biên dịch từ nguồn .
Ephphatha

Câu trả lời:


142

Trước hết, điều rất quan trọng là phải hiểu rằng để sử dụng Qt với Visual Studio 2010, không thể sử dụng các nhị phân dựng sẵn được tạo cho Visual Studio 2008 , nhưng bạn phải biên dịch nó từ nguồn.

Đang tải xuống Qt

Trên https://www.qt.io/doad/

Cập nhật 2017: chi nhánh Qt 4.x mới nhất (Qt 4.8.6) có 2 gói dựng sẵn, hiện nằm trong phần lưu trữ:

  1. http://doad.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe
  2. http://doad.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

Bạn không nên tải xuống Qt bằng cách nhấp vào "Thư viện Qt 4.8.6 cho Windows (Visual Studio 2008, 218 MB)" , nhưng bằng cách nhấp vào liên kết "zip" phía trên nó.

lựa chọn liên kết

Trên liên kết đó, bạn nhận được một tệp zip lớn như "qt-everywhere-opensource-src-4.8.6.zip" . Giải nén cái này vào một thư mục và làm cho đường dẫn của nó trở nên đẹp và nhỏ, ví dụ "E: \ Qt"

Dấu nhắc lệnh của Visual Studio

Bây giờ chúng ta có các nguồn, chúng ta cần xây dựng các nhị phân. Để làm điều đó, hãy mở Microsoft Visual Studio 2010\Visual Studio Tools\Visual Studio Command Prompt (2010)liên kết từ menu bắt đầu của bạn hoặc thậm chí ghim nó vào thanh tác vụ (một ý tưởng tốt). Đây là một dấu nhắc lệnh đặc biệt có tất cả các biến được đặt để xây dựng với các công cụ Visual Studio 2010.

Khi đã ở trong dấu nhắc lệnh, hãy điều hướng đến thư mục Qt được trích xuất của bạn bằng cách sử dụng cách sử dụng DOS cũ, có nghĩa là bạn phải thay đổi ký tự ổ đĩa E:, nhập thư mục theo cd Qtvà liệt kê nội dung thư mục theo dir. Bạn có thể sử dụng phím tab để giúp bạn với tên thư mục. Khi bạn đã đến đúng thư mục, một dirlệnh sẽ trả về một cái gì đó như thế này.

dòng lệnh

Tòa nhà Qt

Bây giờ là lúc để cấu hình và xây dựng. Để định cấu hình Qt tối giản, tôi đang sử dụng các cờ sau với configure.exe. Chỉ cần sao chép và dán nó vào dòng lệnh. Xem trong hướng dẫn tham khảo Qt để biết cờ nào sẽ sử dụng hay không sử dụng.

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg

Khi configure.exeđã kết thúc (đó là 10 phút đối với tôi), bạn sẽ cần bắt đầu quá trình xây dựng. Sẽ mất khoảng 20-30 phút với các cờ trên. Để bắt đầu, chỉ cần gõ:

nmake

Đặt biến môi trường

Về cơ bản, chúng tôi đã hoàn thành. Tất cả những gì bạn cần làm là đặt các biến môi trường ( QTDIRPATH), cho biết các chương trình tìm Qt ở đâu. Nếu bạn đang ở trên Windows 7, bạn có thể sử dụng lệnh sau để đặt thành QTDIRthư mục cài đặt.

setx QTDIR e:\Qt

Để cài đặt PATH, tôi thực sự khuyên bạn nên sử dụng Path Editor . Trong Trình chỉnh sửa đường dẫn

add the directory of Qt\bin to your PATH

(không thành vấn đề nếu nó trong đường dẫn hệ thống hoặc đường dẫn người dùng)

Nếu bạn thích sử dụng Control Panel\System\Environment Variables, thì bạn cũng có thể đặt chúng ở đó.

Bổ trợ Qt Visual Studio

Ở đây bạn đi, sau khi đăng nhập đăng nhập hoặc khởi động lại, tất cả các ứng dụng demo Qt sẽ khởi động chính xác (tôi khuyên bạn nên xem bin \ qtdemo.exe ). Bây giờ bạn có thể tải xuống và cài đặt Bổ trợ Visual Studio (qt-vs-addin-1.1.9.exe) từ trang tải xuống Qt, nó sẽ hoạt động hoàn hảo.

thêm vào trong

Phụ lục A: Hướng dẫn chính thức:

Có một trang tại wiki chính thức tại trang web Qt có tên Qt 4.8 Cài đặt Qt cho Windows , nhưng tôi thấy nó thiếu thông tin quan trọng.

Người giới thiệu

Diễn đàn Qt DevNet
Các cờ được đề xuất cho bản dựng Qt tối giản
Xây dựng Qt 4.5 với Visual C ++ 2010
Cách biên dịch Qt dưới dạng tĩnh
Qt 4.8: Cấu hình các tùy chọn cho Qt
Chỉnh sửa biến môi trường PATH trong
Windows mà không bị đau - op111.net


2
Điều này thật tuyệt, nhưng tôi sẽ thêm -qt-sql-sqlite vào các cờ cấu hình nếu bạn không muốn gặp vấn đề với Trợ lý Qt được xây dựng tùy chỉnh của mình. Có vẻ như nó cần plugin này để đọc cơ sở dữ liệu tài liệu thành công.
neuviemeporte

Hướng dẫn tuyệt vời! Một lưu ý - Tôi đang cố gắng thiết lập trong một hoặc hai ngày và trong quá trình đó đã thêm một số biến đường dẫn vào mingw - những biến này đã bị phá vỡ và cần phải được gỡ bỏ trước khi mọi thứ hoạt động.
David Hall

2
Thêm một lưu ý: Các công cụ VS từ chối xây dựng QT nếu có một số khoảng trắng trong đường dẫn đến thư mục chứa các nguồn QT. Ít nhất nó làm trong trường hợp của tôi.
Roman Kruglov

10
Chỉ một câu hỏi: tại sao Qt không cung cấp phân phối tiền biên dịch VS 2010?
Matt Montag

2
Chỉ để thông báo cho các bạn. Liên kết trong bài viết gốc không hoạt động nữa. Phải mất khá nhiều thời gian để tìm kiếm trang web digia và phát hiện ra addin thậm chí không có ở đó. Liên kết chính người ta phải theo dõi là: qt-project.org/doads
paul23

25

Qt V4.8.0 chứa các tệp nhị phân dựng sẵn cho Visual Studio 2010, do đó bạn không cần phải làm điều này nữa: http://qt.nokia.com/doads/windows-cpp-vs2010


2
Parsley72 các nhị phân dựng sẵn cho Visual Studio 2010 chỉ hữu ích nếu bạn dự định làm việc ở chế độ gỡ lỗi 32 bit, nếu không thì hướng dẫn được đăng bởi zsero rất hữu ích, đặc biệt nếu một người muốn thay đổi các tùy chọn liên quan đến kiến ​​trúc.

Chắc chắn rồi! Nhưng câu hỏi đã được hỏi lại trước khi các thư viện dựng sẵn có sẵn để tôi cho mọi người biết bây giờ có một giải pháp thay thế.
Parsley72

1

Liên kết đến một giải pháp tiềm năng luôn được chào đón, nhưng vui lòng thêm ngữ cảnh xung quanh liên kết để người dùng đồng nghiệp của bạn sẽ có một số ý tưởng về nó là gì và tại sao nó lại ở đó. Luôn trích dẫn phần có liên quan nhất của một liên kết quan trọng, trong trường hợp trang đích không thể truy cập được hoặc ngoại tuyến vĩnh viễn. Hãy xem xét rằng hầu như không có nhiều hơn một liên kết đến một trang web bên ngoài là một lý do có thể là Tại sao và làm thế nào một số câu trả lời bị xóa .
Maximilian Ast
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.