2011-12-07 3 views
7

Khi tôi phát hành dự án Qt, tôi muốn phân phối lại các tệp QtCore4.dllQtGui4.dll với dự án của tôi, nhưng không nằm trong cùng thư mục với số .exe (trong một số đường dẫn tương đối khác).Làm thế nào để thiết lập đường dẫn tương đối cho các dll Qt khi phát hành một dự án Qt?

Tôi làm cách nào để tự động tìm kiếm số .exe của mình?

Tôi cũng không muốn đặt %PATH% hoặc bất kỳ biến môi trường nào khác trong môi trường của khách hàng.

Trả lời

1

Có lẽ cách an toàn nhất là khởi chạy ứng dụng của bạn bằng cách sử dụng tập lệnh làm thay đổi PATH (nhưng chỉ cho phiên đó) trước khi khởi chạy ứng dụng của bạn. Dưới đây là một kịch bản tôi sử dụng để khởi động một phiên bản tùy chỉnh của Qt Creator:

set PATH=%PATH%;C:\Qt\qt474_custom_msvc2008_x64\lib;C:\Qt\jom 
start C:\Qt\qtcreator231__custom_msvc2008_x64\bin\qtcreator.exe 

Tôi nghĩ có giải pháp thay thế, như SetDllDirectory, nhưng (giống như rpath trên * nix), họ giới thiệu các vấn đề khác. Dll song song hoặc thay đổi trong PATH có vẻ là giải pháp ổn định nhất.

Ngoài ra, ý của bạn là bạn muốn triển khai các phiên bản gỡ lỗi (QtCore * d * 4.dll, v.v ...) của các dll đó? Điều đó sẽ khá bất thường - hãy đảm bảo bạn sử dụng các phiên bản phát hành. (Trừ khi, tất nhiên, bạn có lý do hợp lệ để sử dụng các phiên bản gỡ lỗi.)

+0

Cảm ơn. Về đoạn cuối của bạn, tôi không có nghĩa là các phiên bản ** d **, tôi sẽ cập nhật câu hỏi. –

+0

Mặc dù nó vẫn không trả lời được câu hỏi của tôi ... –

1

Trước tiên, bạn nên xem xét lại việc không thay đổi PATH trong môi trường của khách hàng của bạn: nhiều dự án/ứng dụng làm điều đó, vì vậy bạn nên xem xét tùy chọn thực.

Thứ hai, cách tốt nhất để thực hiện việc này có vẻ là chỉnh sửa tệp qt.conf được đặt trong cùng thư mục với tệp thực thi của bạn. Xem this link để biết thêm thông tin về cách chỉnh sửa tệp qt.conf.