2012-03-13 43 views
5

Tôi đã tải Eclipse với trình cắm thêm để làm việc với C/C++ trên Windows. Tôi đã tải về Cygwin (cơ sở và devel chủ yếu) và hoạt động ok cho một ứng dụng hello thế giới.Biên dịch dự án Qt vào Eclipse bằng trình biên dịch Cygwin

Bây giờ tôi muốn làm việc với Qt. Thay vì tải xuống khung công tác, tôi đã tải xuống thư viện "Thư viện Qt 4.8.0 dành cho Windows (minGW 4.4, 354 MB)", vì tùy chọn khác cũng giống với Visual Studio. Tôi biết điều này có thể là một phần của vấn đề, vì nó trông chỉ được thực hiện cho trình biên dịch minGW. Nếu tôi cần làm mọi thứ theo một cách khác, hãy nói.

Sau đó, tôi khởi động lại máy tính, mở Eclipse, đã viết hello world Qt này trong một ứng dụng C++ mới với trình biên dịch Cygwin:

#include <qapplication.h> 
#include <qpushbutton.h> 

using namespace std; 

int main(int argc, char * args[]) 
{ 
    cout << "Here goes!" << endl; 

    QApplication app(argc, args); 
    QPushButton hello("Hello World!", 0); 
    hello.resize(100, 50); 
    app.setMainWidget(&hello); 
    hello.show(); 
    return app.exec(); 
} 

Và trình biên dịch không tìm thấy các file .h bao gồm. Nó có thể cần tôi để thêm Qt \ bin đường dẫn đến các biến môi trường?

Có lẽ tôi nên dính vào khung Qt, vì nó trông giống như một trình biên dịch (tôi thực sự không biết cách hoạt động, kể từ hôm qua tôi nghĩ Qt chỉ là một thư viện).

Hãy cho tôi biết những gì tôi đang làm sai (Tôi hy vọng câu trả lời cho điều này không phải là "tất cả mọi thứ" hehe) và làm cách nào tôi có thể thực hiện công việc này.

+0

đã cài đặt plugin để tích hợp nhật thực với qt? – shofee

+0

Tôi đã làm, và tôi cũng đã thêm thư mục Qt \ bin vào PATH trong các biến môi trường. Cũng cài đặt MinGW như hầu hết các hướng dẫn giải thích thay vì sử dụng Cygwin. Không có gì thay đổi –

Trả lời

2

Khung QT thực hiện một siêu ngôn ngữ trên đầu C++ mà QT sử dụng để tạo khung điều khiển sự kiện (khe cắm qt google và tín hiệu để biết thêm thông tin). Các trình biên dịch chuẩn như G ++ không hiểu ngôn ngữ meta này nên nó phải được dịch trước. Bạn có thể làm điều này thông qua nhật thực bằng cách duy trì makefile của riêng bạn và chạy chương trình Meta-Object-Compiler của QT trên đầu mã trước khi bạn biên dịch nó (xem this page để biết thêm chi tiết).

Cách tiếp cận của tôi là sử dụng bộ công cụ QTCreator để thực hiện việc biên dịch, ngay cả khi bạn không sử dụng nó làm IDE của mình. Ngoài ra, hãy xem xét việc sử dụng Eclipse và qmake, nếu tôi nhớ chính xác, sẽ tự động sử dụng trình biên dịch MOC như là một phần của quá trình của nó.

Chúc may mắn!

+0

Vì vậy, tôi nên sử dụng qt's qmake làm trình biên dịch của tôi, chứ không phải Cygwin hoặc minGQ. Tôi đoán đó là những gì QTCreator làm bên dưới. Có đúng không? Trong trường hợp đó, làm thế nào tôi có thể sử dụng qmake làm trình biên dịch của tôi từ Eclipse? Nó không được liệt kê như là một tùy chọn khi tôi chọn một công cụ biên dịch khi tạo một dự án mới. –

+1

không sử dụng cả hai. qmake xử lý các từ khóa cụ thể và tạo các tệp C++ (và một tệp makefile), sau đó trình biên dịch của bạn sử dụng tệp makefile cho các tệp. Câu hỏi của bạn là tốt đẹp nhưng Qtcreator là imho thích hợp hơn nhiều. – UmNyobe

+1

Tôi phải đồng ý với UmNyobe. Về lý thuyết bạn có thể thiết lập nhật thực để sử dụng qmake như một hệ thống xây dựng. Tuy nhiên, có lẽ sẽ có nhiều phiền toái hơn là chỉ sử dụng QTCreator. Vui lòng xem [bài đăng này] (http://stackoverflow.com/questions/7775398/eclipse-qt-and-c-project-is-it-possible) –

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