2012-03-13 147 views
5

我已經下載Eclipse並使用插件在Windows上使用C/C++。我下載了Cygwin(大部分是基礎和開發),並且適用於hello world應用程序。使用Cygwin編譯器將Qt項目編譯到Eclipse中

現在我想與Qt合作。我沒有下載框架,而是下載了「用於Windows的Qt庫4.8.0(minGW 4.4,354 MB)」庫,因爲其他選項對於Visual Studio來說是相同的。我知道這可能是問題的一部分,因爲它只能用於minGW編譯器。如果我需要以不同的方式做事,請告訴。

然後我重新啓動電腦,打開Eclipse中,寫了這個Qt的世界你好用Cygwin的編譯器一個新的C++應用程序:

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

而且編譯器未找到包括.h文件。是否需要我將Qt \ bin路徑添加到環境變量中?我可能應該堅持Qt框架,因爲它看起來像一個編譯器本身(我真的不知道它是如何工作的,因爲昨天我以爲Qt只是一個庫)。

請告訴我我做錯了什麼(我希望這個答案不是「一切」嘿嘿),我該如何做這項工作。

+0

確實安裝了用於集成eclipse和qt的插件嗎? – shofee 2012-03-13 09:48:23

+0

我做過了,我也在環境變量中添加了Qt \ bin文件夾到PATH。由於大多數教程都解釋了使用Cygwin,所以也安裝了MinGW。沒有什麼變化 – 2012-03-13 11:18:27

回答

2

QT框架實現了C++頂層的元語言,QT使用它來創建其事件處理框架(有關更多信息的谷歌qt插槽和信號)。像G ++這樣的標準編譯器不理解這種元語言,因此必須先進行翻譯。您可以在編譯之前通過維護您自己的makefile並在代碼頂部運行QT的元對象編譯器(通過this page瞭解更多詳細信息),通過eclipse完成此操作。

我的方法是使用QTCreator工具包進行編譯,即使您不使用它作爲IDE。另外考慮使用Eclipse和qmake,如果我沒有記錯,它會自動使用MOC translater作爲其過程的一部分。

祝你好運!

+0

因此,我應該使用Qt的qmake作爲我的編譯器,而不是Cygwin或minGQ。我想這就是QTCreator所做的。是對的嗎?在那種情況下,我如何使用qmake作爲Eclipse的編譯器?當我在創建新項目時選擇編譯器工具時,它未被列爲選項。 – 2012-03-13 08:28:02

+1

不,你們兩個都用。 qmake處理Qt特定的關鍵字並生成C++文件(和一個makefile),然後你的編譯器使用這個文件的makefile。你的問題很好,但Qtcreator是非常合適的imho。 – UmNyobe 2012-03-13 09:28:01

+1

我不得不同意UmNyobe。理論上你可以設置eclipse來使用qmake作爲構建系統。但是,這可能會比使用QTCreator更麻煩。請參閱[本文](http://stackoverflow.com/questions/7775398/eclipse-qt-and-c-project-is-it-possible) – 2012-03-13 10:18:45