Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带qt4和qt5的Linux 13.04-使失败_Qt_Qmake - Fatal编程技术网

带qt4和qt5的Linux 13.04-使失败

带qt4和qt5的Linux 13.04-使失败,qt,qmake,Qt,Qmake,我是Qt新手,刚刚安装了最新版本的Linux(mint Ubuntu 13.04)开始编程。首先,我使用github构建脚本安装了Qt4(这也安装了QtCreater、QtDesigner、QtAssistant和QTLinguagist)。我还安装了PySide,因为我还计划做一些Python gui编程。我没有意识到安装了qt5,但似乎在我安装的过程中的某个点上 QT教程中的以下程序说明了我的问题: #include <QApplication> #include <QLa

我是Qt新手,刚刚安装了最新版本的Linux(mint Ubuntu 13.04)开始编程。首先,我使用github构建脚本安装了Qt4(这也安装了QtCreater、QtDesigner、QtAssistant和QTLinguagist)。我还安装了PySide,因为我还计划做一些Python gui编程。我没有意识到安装了qt5,但似乎在我安装的过程中的某个点上

QT教程中的以下程序说明了我的问题:

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    delete label;
    return app.exec();
}
这显然意味着gcc在qmake指定的库中找不到qapplication。对此进行调查:

..] $ sudo find / -name QApplication*  
/usr/include/qt4/QtGui/QApplication
/usr/include/qt5/QtWidgets/QApplication
/home/drk/Canopy/appdata/canopy-1.0.1.1189.rh5-x86_64/include/QtGui/QApplication
查看make文件,提供的库是(从编译器行可以看到):

最后,看看qmake:

..] $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu
如您所见,尽管我安装了Qt4,并且在我的qt5库目录层次结构中,“QApplications”位于/usr/include/qt5/QtWidgets中,而不是在QtGui中,但qmake仍假设qt5.0.1。但是,qmake不会将qtwidget/添加到我的include库中


我不明白发生了什么…一个系统不能同时安装qt4和qt5吗?…我的qt5/qt5安装是否已损坏?…我如何让qmake使用qt4?如果您有任何建议,我们将不胜感激。

您可以在同一系统上同时安装Qt 4和Qt 5。然而,它们之间几乎没有什么不同,而你正击中其中的一个。在Qt5中,小部件现在位于自己的模块中,因此需要添加

QT += widgets
转到
.pro
文件,然后重新运行
qmake


(在你说你在屏幕上看不到任何东西之前:不要删除标签!)

你可以在同一个系统上同时使用Qt4和Qt5。然而,它们之间几乎没有什么不同,而你正击中其中的一个。在Qt5中,小部件现在位于自己的模块中,因此需要添加

QT += widgets
转到
.pro
文件,然后重新运行
qmake

(在你说你在屏幕上看不到任何东西之前:不要删除标签!)

看看是否有“qmake4”、“qt4 qmake”或“qmake-qt4”命令而不是“qmake”

另外,为什么要在外部安装Qt4?Ubuntu在其存储库中提供了它。只需使用Ubuntu的软件包管理器安装即可。这样您就可以确保它安装正确。Qt Creator也可以在repos中找到。

查看是否有“qmake4”、“qt4 qmake”或“qmake-qt4”命令,而不仅仅是“qmake”


另外,为什么要在外部安装Qt4?Ubuntu在其存储库中提供了它。只需使用Ubuntu的软件包管理器安装即可。这样您就可以确保它安装正确。Qt Creator也可以在repos中使用。

您创建和删除QLabel时甚至没有到达事件循环,有什么特别的原因吗?是的,愚蠢。。。谢谢你先发制人!您创建和删除QLabel甚至没有到达事件循环,有什么特别的原因吗?是的,愚蠢。。。谢谢你先发制人!谢谢,是的,我有qmake-qt4,它工作得很好:)我从外部安装了qt4,因为这是Qt项目网站上推荐的方法。我以前安装过qt的回购协议,所以我决定最好照章办事。谢谢,是的,我有qmake-qt4,它工作得很好:)我从外部安装了qt4,因为这是qt项目网站上推荐的方法。我以前安装过qt的回购协议,所以我决定最好照章办事。
QT += widgets