2013-09-01 52 views
10

Tôi đã tạo một dự án Qt trong Ubuntu và mọi thứ diễn ra suôn sẻ. Tuy nhiên, tôi cũng cần triển khai nó trên Windows. Nó sử dụng thư viện Boost (vấn đề lớn).Cách định cấu hình Trình tạo Qt để sử dụng Boost trong Windows

Tôi đã tìm kiếm hàng giờ để tìm giải pháp, nhưng không có may mắn. Tôi đã cố gắng cài đặt thư viện Boost và liên kết nó với mingw; Tôi nghĩ rằng tôi đã bỏ lỡ một cái gì đó. Đây là những gì tôi đã làm và tải phiên bản mới nhất:.

1) chạy \ bootstrap
2) sau đó \ b2 --prefix = C:. \ Boost cài đặt

Đáng buồn là không cài đặt một cách chính xác. Tôi chỉ nhận được 2 thư mục (bin và share) nhưng không có tiêu đề.

Tuy nhiên, tại đây (http://nuwen.net/) Tôi đã tìm thấy một gói (Mingw + Boost và các thư viện khác). Điều này có mọi thứ tôi cần.

Bây giờ tôi nghĩ vấn đề là tệp .pro, bởi vì tôi có nhiều tham chiếu chưa được xác định. Đây là tệp .pro với mọi thứ tôi đã thử (một số nhận xét): http://pastebin.com/pBFMTAd8

Trợ giúp của bạn được đánh giá cao!

+0

Một vài thông báo lỗi sẽ tốt đẹp. Và bạn có thể xác nhận rằng libs tăng của bạn có trong C:/MinGW/lib không? – Greenflow

+0

Lỗi của tôi, dưới đây là một số lỗi: http://postimg.org/image/h4vvo8mgx/9040bd30/; và đây là đường dẫn C: \ MinGW \ lib: http://postimg.org/image/3lw19jdt9/ad5481f9/ – Athan

+0

Tôi chỉ thấy .a tăng libs. Không có gì trong tệp .pro của bạn chỉ ra rằng bạn làm một bản dựng tĩnh. Có những tệp boost .dll trong thư mục này không? – Greenflow

Trả lời

10

Tôi đã tự giải quyết vấn đề. Và đây là cách tôi đã làm nó. Trước hết, nó là cần thiết để có tăng thư viện biên dịch với cùng một trình biên dịch bạn đang sử dụng với Qt.
Nếu bạn đang sử dụng msvc, sau đó bạn may mắn vì Boost guys đã làm bạn một ưu tiên và biên soạn các thư viện cho bạn. Bạn có thể tải xuống tại đây: http://sourceforge.net/projects/boost/files/boost-binaries/.
Nếu bạn đang sử dụng mingw (mà không đi kèm trong bó với Qt), bạn có thể làm điều này:

  • add mingw trình biên dịch để biến PATH Windows:
    ~ đi vào bảng điều khiển và tìm kiếm hệ thống;
    ~ thêm đường dẫn của mingw (ví dụ: C: \ Qt \ Tools \ mingw \ bin) vào biến PATH bằng cách thêm ';' vào đường dẫn của bạn (ví dụ: "; C: \ Qt \ Tools \ mingw \ bin")
  • biên soạn Thư viện tăng tốc: ~ lưu trữ tăng nén
    ~ mở cửa sổ Dòng lệnh, chuyển đến thư mục tăng chưa giải nén, sau đó đi vào thư mục tools/build/v2/engine
    ~ bạn đã xây dựng trình cài đặt với bộ công cụ mingw:. \ build --toolset = mingw
    ~ điều này sẽ tạo 2 tệp trong thư mục bin.ntx86 hoặc một cái gì đó tương tự; sao chép các tập tin bjam và b2 trong thư mục boost chưa được giải nén;
    ~ bây giờ đi vào thư mục tăng và bắt đầu xây dựng nó:. B2 --toolset = mingw --build-type = hoàn thành giai đoạn (có hướng dẫn tốt để cài đặt nó cùng với nhật thực: http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/)
    lưu ý: điều này sẽ mất vài giờ, vì vậy có thể muốn xem một bộ phim hoặc những gì bạn muốn làm trong khi đó. Tuy nhiên bạn có tùy chọn để tăng tốc độ một chút bằng cách thêm một đối số khác vào lệnh xây dựng: -j N, trong đó N là số lõi mà bộ xử lý của bạn có.
  • khi quá trình xây dựng hoàn tất, giờ đây bạn có thể liên kết thư viện trong Qt. Để thực hiện việc này, bạn cần chỉnh sửa tệp .pro. Trước tiên, bạn sẽ phải thông báo cho Qt vị trí của tiêu đề và bạn làm như vậy bằng cách thêm:
    INCLUDEPATH + = path_to_boost_folder, ví dụ: : INCLUDEPATH + = C:/boost_1_54_0
    ~ cũng nếu bạn đang sử dụng thư viện yêu cầu liên kết, ví dụ hệ thống và hệ thống tệp bạn phải liên kết chúng một cách riêng biệt:
    LIBS + = "C:/boost_1_54_0/stage/lib/libboost_filesystem -mgw48-1_54.a ",
    LIBS + =" C: /boost_1_54_0/stage/lib/libboost_system-mgw48-1_54.a "
  • sau khi sửa đổi tệp .pro, chạy qmake, sau đó tạo lại.

Hy vọng điều này cũng phù hợp với bạn!

Cập nhật: Hệ thống phân cấp thư mục đã thay đổi. Để xây dựng thư viện, bạn nên đọc tài liệu liên quan đến từng phiên bản và Boost.Build's documentation. Xây dựng thư viện từ thư mục gốc dễ dàng hơn (Building Boost 1.52 with MinGW):

C:\boost_1_60_0> bootstrap.bat mingw 
C:\boost_1_60_0> .\b2 --toolset=gcc -j N --build-type=complete 
0

tăng cường xây dựng sẽ không đặt tiêu đề, tiêu đề dành cho nhà phát triển khi tạo mã mới. Các thư mục được cài đặt là các tệp nhị phân để phân phối.

thấy http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary

này sẽ cài đặt các thư viện, mà bạn sử dụng trong thời gian chạy (không thời gian biên dịch). Bởi vì bạn thêm thư mục bin này vào đường dẫn của bạn và đó là lý do tại sao khi chạy một ứng dụng xây dựng với tăng nó sẽ chạy và không nói "không thể tìm thấy xxx.dll"