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
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.
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 và nguồn của chúng. Để ở lại với luật pháp :-)
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.
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
- 1. Làm thế nào để Layer widget độc lập trong Qt?
- 2. Làm cách nào để tôi có thể viết trình đơn ngữ cảnh của riêng mình để sao chép và dán?
- 3. Làm thế nào để sử dụng COM dll trong chương trình C++ của tôi
- 4. Làm thế nào để sao chép đối tượng trong Qt?
- 5. Tạo bản sao độc lập của UIBezierPath?
- 6. Làm thế nào để bắt đầu một quá trình và làm cho nó 'độc lập'
- 7. Tôi nên chọn ngôn ngữ lập trình nào cho dịch vụ web hiệu suất cao của mình?
- 8. Chương trình OpenCV/C++ chậm hơn so với chương trình của nó, tôi nên làm gì?
- 9. sụp đổ Chương trình cho mảng sao chép với ifort
- 10. Làm thế nào để làm cho chương trình của tôi là một quá trình nền
- 11. Tại sao tôi nên ký các tệp JAR của mình?
- 12. Làm cho chương trình Java là exe độc lập (chạy không có JVM)
- 13. Hiệp hội độc lập EF4 - Tại sao nên tránh chúng?
- 14. Tạo bản dựng tĩnh (ứng dụng độc lập) với Qt
- 15. Tôi nên sao chép Strings bằng Java như thế nào?
- 16. Tôi làm cách nào để tìm Phiên bản hội thoại của chương trình gọi điện?
- 17. Tôi có thể tạo chương trình JavaScript độc lập cục bộ không?
- 18. Tôi có nên tạo DLL cho mô đun không?
- 19. Bản sao chép/dán văn bản độc lập của hệ điều hành trong C
- 20. Có cách nào để sao chép mã nguồn của Qt sang một vị trí khác không?
- 21. printf làm chậm chương trình của tôi
- 22. Làm thế nào để khẳng định rằng C++ 11 nên được sử dụng để biên dịch chương trình của tôi?
- 23. Tôi làm cách nào để ký các JAR độc lập của ProGuard'ed Scala?
- 24. Làm cách nào để tôi có thể tải Hiệp hội tệp của mình để mở nhiều tệp trong một bản sao chương trình duy nhất?
- 25. cmake: Cách tạo một tập lệnh sao chép các tệp Dữ liệu đi kèm với chương trình của tôi
- 26. Lập trình cho và bằng chính mình
- 27. Sao chép LIne trong qt phím tắt
- 28. làm cách nào để tạo ứng dụng độc lập (chỉ với một exe) với qt?
- 29. Tôi nên làm cách nào để kiến trúc cho ứng dụng iPhone của mình nói chuyện với trang web của mình?
- 30. Làm cách nào để Visual Studio ngừng sao chép các tệp DLL trong khi xây dựng mà không có sự cho phép của tôi?
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