2009-12-22 35 views
17

Tôi đang cố gắng triển khai dự án Qt đơn giản của mình như một thế giới hello.Làm cách nào để triển khai ứng dụng của tôi bằng Qt-Creator?

Tôi xây dựng thành công và cũng có thể chạy nó trên Qt-Creator. Tuy nhiên, tôi không thể thực thi nhị phân trực tiếp trong thư mục phát hành do một số lỗi thư viện được chia sẻ.

Vì vậy, tôi chỉ sao chép một số thư viện cần thiết vào thư mục phát hành như qtcore.dll và qtgui.dll, nhưng tôi vẫn không thể thực hiện nó.

Làm cách nào để triển khai dự án Qt đơn giản của tôi? Có một bước khác để triển khai nó không?

+0

thông báo lỗi là gì? –

+0

Thông báo lỗi là điểm bắt đầu của thủ tục không được tìm thấy trong QtCore4.dll. Thông báo lỗi này có thể không chính xác vì nó được dịch sang tiếng Anh bởi tôi. – Brian

Trả lời

19

Bạn cũng cần phải triển khai các dll runtime MinGW (mingwm10.dll). Tệp này nằm trong thư mục Qt\2009.5\mingw\bin của bạn.

Cũng chú ý đến việc ứng dụng của bạn có được biên dịch ở chế độ gỡ lỗi hoặc chế độ phát hành hay không. Tôi vừa làm bài kiểm tra với một ứng dụng kiểu hello world và Qt Creator. Trong các thư mục debug, tôi đã sao chép libgcc_s_dw2-1.dll, mingwm10.dll, QtCored4.dllQtGuid4.dll và nó hoạt động.

Chú ý đến các d trong tên dll, viết tắt của debug: QtCored4.dll.

Xem Qt 4.6: Deploying an Application in Windows. Đối với Qt 5, hãy kiểm tra this page.

+0

Tôi đã sao chép tệp đó và libgcc_s_dw2-1.dll, nhưng thông báo lỗi sau xảy ra. Điểm bắt đầu của thủ tục không được tìm thấy trong QtCore4.dll.Thông báo lỗi này có thể không chính xác vì nó được dịch sang tiếng Anh bởi tôi – Brian

+0

@brian> phiên bản Qt nào bạn đang sử dụng, đây có phải là phiên bản LGPL không? bạn có chú ý đến các phiên bản gỡ rối và phát hành của các thư viện Qt không? –

+0

Cảm ơn. Tôi giải quyết vấn đề này. Nó không thành công vì tôi đã sử dụng qtcore.dll và qtgui.dll nằm trong thư mục Qt \ 2009.5 \ bin. Khi tôi sử dụng những tập tin nằm trong thư mục Qt \ 2009.5 \ qt \ bin, nó hoạt động tốt. – Brian

1

Thử chạy bộ phụ thuộc trên đó (http://dependencywalker.com/) để xem các tệp nào bị thiếu?

Nói chung, bạn sẽ không cần di chuyển các thư viện Qt đó vào thư mục cục bộ của bạn vì cài đặt Qt nên thêm các thư viện đó vào đường dẫn của bạn.

Một khả năng là bạn xây dựng gỡ lỗi, và debug dlls Qt được đặt tên khác nhau

11

Nếu bạn không muốn có phụ thuộc với qt/mingw dll, bạn nên biên dịch qt tĩnh như giải thích tại đây: http://qt.nokia.com/doc/4.6/deployment-windows.html#static-linking.

+4

Giả sử bạn có giấy phép để làm như vậy. Liên kết tĩnh yêu cầu giấy phép thương mại. – drowe

+3

@Drowe: Bạn không phải mua giấy phép comercial, Bạn chỉ cần phát hành mã nguồn theo giấy phép LGPL/GPL. – Seba

+1

@ Seba - đúng, điểm tốt. A (có thể) giả định không chính xác về phía tôi. – drowe

2

Bạn cũng có thể sử dụng liên kết tĩnh, chỉ cần thêm dòng này vào .pro file:

QMAKE_LFLAGS += -static-libgcc

Tôi tìm thấy giải pháp here và thử nghiệm thành công trên WinXP với QT creator 2.2.0

-6

sao chép tất cả các dlls qt vào thư mục cửa sổ của bạn trực tiếp "C: \ Windows \" và sẽ không có lỗi dll qt 100% hoạt động và đơn giản nb: không tạo thư mục dt qt trong yo thư mục cửa sổ ur đăng chúng vì chúng là

+1

Đây là một ý tưởng tồi ... Không bao giờ làm hỏng các cửa sổ và không bao giờ sử dụng phương thức này khi triển khai một ứng dụng .. Hãy dành thời gian để xem những tệp cần thiết nào và triển khai chúng bằng ứng dụng của bạn. Trong khi câu hỏi/trả lời cũ .. Tốt nhất để tư vấn cho mọi người, đây KHÔNG phải là một ý tưởng tốt – Mayhem

+0

Đây là một thực hành không tốt. Như đã đề cập, hãy tìm các dll cần thiết và thêm chúng cho phù hợp trong quá trình triển khai. –

Các vấn đề liên quan