2012-03-13 145 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