2009-03-05 24 views
5

Tôi đang cố gắng tạo một thư mục phân phối với ứng dụng của mình. Tôi đã sao chép một số DLL Qt vào thư mục đó, và chương trình có vẻ đang hoạt động, với một ngoại lệ: nó dường như không tìm thấy plugin SQL cho SQLite. Đang sao chép qtsqlite.dll vào thư mục, không cho phép ứng dụng của tôi mở hoặc tạo các tệp SQLite. Cấu trúc direcotry cần phải được sao chép để các chương trình nào có thể đọc cơ sở dữ liệu?Tôi nên sao chép Qt DLL nào để làm cho chương trình của mình độc lập?

Trả lời

4

bạn có thể sử dụng depends.exe để xem chính xác phụ thuộc của exe của bạn là gì và đảm bảo chúng được bao gồm.

Ngoài ra, hãy đọc this page về plugin qt. chúng được cho là nằm trong một thư mục cụ thể được gọi là "plugins" và không nằm trong thư mục chính với tất cả các dll khác.

+0

Theo mặc định, ứng dụng sẽ sử dụng thư mục khởi động của nó làm thư mục plugin; bạn cần đặt các trình điều khiển trong tên thư mục lớp cơ sở: ví dụ: app_dir/sqldrivers. – dwj

2

Rất có thể, chính qtsqlite.dll phụ thuộc vào bản gốc của SQLite DLL mà bạn có thể cần phải sao chép là tốt.

Đừng quên bao gồm bản sao giấy phép LGP trong bản phân phối của bạn cũng như các con trỏ đến tài nguyên tải xuống ban đầu của libs bạn bao gồm nguồn của chúng. Để ở lại với luật pháp :-)

2

Nhờ liên kết @shoosh được cung cấp, tôi đã có thể khắc phục sự cố. Tôi cần thiết để tạo sqldrivers thư mục con trong thư mục phân phối với thư viện qsqlite.dll bên trong. Nhưng đó chỉ là bước một. Bạn có bất kỳ mẹo và tài nguyên nào khi tạo trình cài đặt Windows đầy đủ không? Tôi chủ yếu là một lập trình viên Linux nên khu vực này không được biết đến với tôi.

+0

Có lẽ NSIS là điểm khởi đầu tốt cho bạn: http://nsis.sourceforge.net/ Đây là nguồn mở và có thể viết được. Tốt cho các lập trình viên Linux :-D – ypnos

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