2011-05-11 42 views
5

Tôi đang phát triển một ứng dụng trong Qt, nhưng sử dụng ngôn ngữ D (với ràng buộc QtD). Tôi đã nhận thấy rằng ứng dụng của tôi bị treo với Q.x 4.7.x, vì vậy tôi cần sử dụng Qt 4.6.2 thay thế. Tuy nhiên trong hệ thống của tôi Qt 4.7.2 được cài đặt. Thật không may tôi không làm cho QtD làm việc với các phiên bản Qt mới nhất cũng không (tôi sợ) đếm trên các nhà phát triển QtD ...Cách cài đặt hai phiên bản Qt và cho ứng dụng sử dụng?

Điều duy nhất tôi cần để cài đặt ứng dụng của tôi trong hệ thống Qt 4.6.2 libs và sử dụng nó, nhưng hãy để tất cả các ứng dụng khác vẫn sử dụng Qt 4.7.2. Có thể không? Nếu nó là, làm thế nào để làm điều đó sau đó?

Trả lời

1

Có thể cài đặt một số phiên bản của thư viện vào một hệ thống và tất cả trình quản lý gói (rpm, deb) hỗ trợ việc này ra khỏi hộp.

Các thư viện này sẽ được đặt tên khác. Ví dụ, nếu id làm

ls /usr/lib/ | grep libcurl 

trên hệ thống của tôi, tôi sẽ nhận được:

libcurl-gnutls.so.3 
libcurl-gnutls.so.4 
libcurl-gnutls.so.4.2.0 
libcurl.so.3 
libcurl.so.4 
libcurl.so.4.2.0 

, vì vậy, phiên bản khác nhau của cùng một thư viện vui vẻ sống chung với nhau.

Tất cả những gì bạn cần làm là liên kết với phiên bản thư viện QT mong muốn. Bạn cần phải sepcify nó trong các tùy chọn linker (không nhớ tùy chọn chính xác).

+0

Tôi đã phát hiện ra một số vấn đề khác, vì vậy tôi phải chấm dứt dự án của mình. Cảm ơn sự giúp đỡ của bạn anyway ... –

5

Câu trả lời cho câu hỏi của bạn là phiên bản Qt được xác định bởi qmake bạn sử dụng để tạo Makefile của mình.

/opt/QtSDK/Qt-4.6.2/bin/qmake

/opt/QtSDK/Qt-4.7.3/bin/qmake

Mỗi sẽ sử dụng thư viện trong cac thu mục.

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