2010-06-24 42 views
6

Chúng tôi đang xây dựng ứng dụng Windows và Mac bằng giấy phép thương mại Qt, mà chúng tôi đang xây dựng từ bản sao git.Có cách nào để sao chép mã nguồn của Qt sang một vị trí khác không?

Chúng tôi đã có một thiết lập xây dựng bằng cách sử dụng Hudson với một số đại lý có khả năng xây dựng, và những gì tôi muốn làm cho Windows ít nhất là xây dựng một lần sau đó triển khai xây dựng Qt cho mỗi đại lý (chứ không phải xây dựng Qt trên mỗi đại lý). Có vẻ như, tuy nhiên, Qt được xây dựng không thích được di chuyển hoặc sao chép.

Có cách nào khác không? Một suy nghĩ chúng tôi đã có là có một số thiết lập mà sẽ xây dựng Qt để nó giống như phân phối nhị phân của họ, nhưng tôi không thể nhìn thấy một cách để làm điều này.

+0

Bạn thấy lỗi nào? – jlarcombe

+0

Lỗi ban đầu có vẻ là: QMAKESPEC chưa được đặt, vì vậy cấu hình không thể được suy ra. Sau đó tôi nhận được một số lỗi khác, nhưng tôi nghi ngờ tất cả chúng đều xuất phát từ lỗi này. –

+0

Đường dẫn xây dựng thực sự được nhúng vào thư viện QtCore. Nếu bạn cố gắng di chuyển một bản xây dựng, sẽ có nhiều lỗi, một số trong số chúng khá tinh tế. ví dụ: các giá trị được trả lại cho QLibraryInfo :: LibraryLocation sẽ sai. – rohanpm

Trả lời

5

Cách mà các bố Qt nhị phân công việc là thế này:

Qt được xây dựng thành một xây dựng con đường rất dài (ví dụ như trên cửa sổ, c:\Qt\______________padding__________for_________packaging________________). Sau đó, nó được đóng gói vào một trình cài đặt Trình cài đặt có chứa một plugin tùy chỉnh mà quét. thông qua các tệp nhị phân lúc cài đặt và vá các tệp nhị phân Qt, thay thế đường dẫn xây dựng dài bằng đường dẫn cài đặt của người dùng. ..

Trên máy Mac và Linux cũng có một số rpath tương tự. Hoặc đường nối sử dụng $ORIGIN để làm cho nó tương đối hoặc mã nhị phân được vá như abo ve đường dẫn.

Các kịch bản mà làm cho các gói nhị phân là khá nguyên khối và logic này là không dễ dàng tách ra ...

Đối với trường hợp sử dụng của bạn, tôi sẽ khuyên bạn chỉ đơn giản là xây dựng Qt trong một con đường có thể dự đoán tất cả các thời gian. Luôn xây dựng Qt tại c:\Qt_test và triển khai tới c:\Qt_test trên từng tác nhân. Nhược điểm là Hudson có thể không được tốt như vậy tại tự động làm sạch này lên, vì vậy bạn sẽ phải kịch bản đó cho mình.

+0

Tác phẩm đó - cảm ơn lời giải thích và gợi ý. –

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