您的位置:首页 > 运维架构 > Linux

linux下QT Creator常见错误及解决办法

2016-03-06 12:23 751 查看
最近因为在做一个关于linux下计算机取证的小项目,需要写一个图形界面,所以想到了用QT来写,选用了linux下的集成开发环境QT Creator5.5.1,但刚刚安装好,竟然连一个"hello world"的样例都跑不起来,现在通过查找资料将一些问题解决掉了,放在这里记录下来,已被后用和分享:

1、QApplication: No such file or directory

(1)首先确定好QT Creator内部的环境变量设置是否正确:

“工具-选项-构建和运行”:找到“QT Versions”,点击“自动检测”下面的版本号,下边会出现一个新的配置栏,点击“桌面的Qt 版本5.5.1 ”后面的“详情”,查看“QT_INSTALL_HEADERS”后面的头文件变量是否正确,也可以到该变量中查找有无QApplication这一头文件,如果没有,建议重新安装QT,因为你从网上下载的单个文件不一定能够现有的编译器识别,最好安装配套的组件。

(2)如果以上信息都确认无误,则检查工程文件中*.pro中是否有“QT += widgets”,若没有,则需要在工程文件*.pro下增加一条:“QT += widgets”。通常问题就可以解决了;

2、:-1: error: cannot find -lGL

这个就很郁闷了,刚刚接触QT,连个hello world都没搞定呢,lGL是个什么鬼?网上一查才知道是个什么运行库,这里感谢CSDN上网友的解决办法:
http://bbs.csdn.net/topics/390845437?list=lz
sudo apt-get install libqt4-dev或者sudo apt-get install libgl1-mesa-dev或者libgl1-mesa-dev或者libglu1-mesa-dev

我把这几个包没有的都装了一遍,最后一个装的时候还把源更新了一遍才装上,这次问题就完美解决了。

3、Circular all <- first dependency dropped

这个问题就比较奇葩了,我很纳闷为什么会有这样的问题:

这个问题其实很容易解决,但解决方式有点让人吐血:出这个问题的肯定是你把工程名命名为了"first",是不是?

查过了才知道,Qt使用了first这个单词作为生成的Makefile文件的内置项,导致make在处理Makefile时产生依赖错误,只要把工程重命名即可解决

(神坑的问题……)

感谢博客园网友“24k纯开源”提供的解决办法:http://www.cnblogs.com/csuftzzk/archive/2013/07/18/3198154.html

4、 [SOLVED] Gtk-Message: Failed to load module "canberra-gtk-module"

这个是gtk库没有安装完整,重新安装即可

sudo apt-get install libcanberra-gtk3-module

sudo apt-get install libcanberra-gtk*

这样就可以解决了

5、对于包含了Q_OBJECT宏的类对象,需要现在本地执行"qmake -project"->"qmake"->"make",才能获得可执行文件,QT Creator中不能直接编译。

6、error: 'tr' was not declared in this scope

tr这个函数是QObject对象中的静态成员函数,因此使用的时候,如果不是用类来写的话,就会报这个错误,只需要在tr函数前加上“QObject::”,如:“QObject::tr("a button")”这样既可;

*一般用类来写程序时都会在定义类成员之前先包含QObject对象,所以用类就不会存在这个问题了

(今后问题肯定还会有,如果再出现任何问题,我都会及时再次更新……)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: