2012-03-13 22 views
5

Pobrałem Eclipse z wtyczką do pracy z C/C++ przez Windows. Pobrałem Cygwin (głównie w wersji podstawowej i devel) i działa dobrze dla aplikacji Hello World.Kompilowanie projektu Qt do Eclipse przy użyciu kompilatora Cygwin

Teraz chcę pracować z Qt. Zamiast pobierać framework, pobrałem biblioteki "Qt libraries 4.8.0 dla Windows (minGW 4.4, 354 MB)", ponieważ druga opcja była taka sama dla Visual Studio. Wiem, że może to być częścią problemu, ponieważ wygląda na to, że jest wykonywane tylko dla kompilatora minGW. Jeśli muszę zrobić coś w inny sposób, proszę powiedzieć.

Potem ponownie uruchomić komputer, otworzył Eclipse, napisał ten Qt Hello World dla nowej aplikacji z C++ Cygwin kompilatora:

#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(); 
} 

i kompilatora nie znajdzie .h plików włączone. Czy powinienem dodać ścieżkę Qt \ bin do zmiennych środowiskowych?

Może powinienem trzymać się frameworka Qt, ponieważ wygląda jak sam kompilator (naprawdę nie wiem jak to działa, ponieważ wczoraj myślałem, że Qt to po prostu biblioteka).

Proszę mi powiedzieć, co robię źle (mam nadzieję, że odpowiedź na to nie jest "WSZYSTKO" hehe) i jak mogę to zrobić.

+0

czy zainstalowałeś wtyczkę do integracji Eclipse z qt? – shofee

+0

Zrobiłem, a także dodałem folder Qt \ bin do zmiennej PATH w zmiennych środowiskowych. Zainstalowałem także MinGW, jak wyjaśnia większość samouczków zamiast używać Cygwin. Nic się nie zmienia –

Odpowiedz

2

Architektura QT implementuje metajęzyko ponad C++, którego QT używa do tworzenia struktury obsługi zdarzeń (google qt slots i sygnały, aby uzyskać więcej informacji). Standardowe kompilatory, takie jak G ++, nie rozumieją tego metajęzyka, więc muszą być najpierw przetłumaczone. Możesz to zrobić poprzez zaćmienie, utrzymując własny plik makefile i uruchamiając kompilator Metaobiektu QT nad kodem, zanim go skompilujesz (więcej szczegółów znajdziesz w artykule this page).

Moje podejście polegałoby na użyciu zestawu narzędzi QTCreator do wykonania kompilacji, nawet jeśli nie używasz jej jako swojego IDE. Rozważ także użycie Eclipse i qmake, które, jeśli dobrze pamiętam, automatycznie wykorzystują translator MOC jako część procesu.

Powodzenia!

+0

Więc powinienem używać qmake Qt jako mojego kompilatora, a nie Cygwin lub minGQ. Sądzę, że to właśnie robi QTCreator. Czy to prawda? W takim razie jak mogę użyć qmake jako mojego kompilatora z Eclipse? Nie jest wymieniony jako opcja, gdy wybieram narzędzie kompilatora podczas tworzenia nowego projektu. –

+1

nie używasz obu. qmake przetwarzaj określone słowa kluczowe i generuj pliki C++ (oraz plik makefile), a następnie kompilator użyje pliku Makefile dla plików. Twoje pytanie jest miłe, ale Qtcreator jest o wiele bardziej odpowiedni. – UmNyobe

+1

Muszę się zgodzić z UmNyobe. Teoretycznie można ustawić zaćmienie, aby używać qmake jako systemu kompilacji. Jednak byłoby to o wiele bardziej kłopotliwe niż użycie tylko QTCreatora. Zobacz [ten post] (http://stackoverflow.com/questions/7775398/eclipse-qt-and-c-project-is-it-possible) –

Powiązane problemy