详细介绍 Ubuntu 9.04下Qt Creator 安装及配置是本文要介绍的内容,多的不介绍,先来看内容。以前在ubuntu 9.04上安装Qt Creator 的时候,好像没有配置,其自动就安装好了,这次在ubuntu 10.04中发现,居然要自己配置,哎,那就配置呗。
1. 下载。从QT网站下载带有Qt库,Qt Creator IDE,Qt 开发工具的“Qt SDK: 完整的开发环境”。例如:Qt SDK for Linux/X11 32-bit** (269 Mb)
- http://get.qt.nokia.com/qtsdk/qt-sdk-linux-x86-opensource-2009.03.1.bin
2. 修改文件属性为可执行。
- chmod u+x qt-sdk-linux-x86-opensource- 2009.03.1.bin
3. 以超级用户身份安装:
- sudo ./qt-sdk-linux-x86-opensource-2009.03.1.bin
默认安装位置为/opt/qtsdk-2009.03/; 安装完有800MB左右。其中已经包含了qt,qt-designer等工具。
4. 这时用QT Creater创建工程,编译的时候会出错,显示:
- No valid Qt version set. Set one in Tools/OptionsError while building project HelloWorld
- When executing build step 'QMake'
- Canceled build.
这是因为没有为QT Creator设置好各种工具所在的位置。
选择"Tools"->"Qt4"- >"Qt Versions", 单击“右上角的加号”,添加适合的QT版本:
- Version Name: qt
- Path: /opt/qtsdk-2009.03/qt
- Default Qt Version: qt
5. 目前配置基本完成了.如果你之前已经安装了g++(sudo apt-get install g++)的话.
但是当你编译一个HelloWorld项目时,仍然可能遇到如下的错误,导致无法编译通过.
例如: /usr/bin/ld: cannot find -lgthread-2.0
- /usr/bin/ld: cannot find -lgobject
- /usr/bin/ld: cannot find -lglib-2.0
- /usr/bin/ld: cannot find -lfreetype
等等.
这是由于编译链接时没有找到所需的库文件导致的错误.为什么没有找到呢?主要有以下两个原因:
(1)这个库还没有安装.这时就需要找到相应的库,安装一下:例如:
- sudo apt-get install libfreetype6-dev
(2)另外一个原因是库文件存在,但是找不到. 这种情况原因有多种。
1、路径不对,或是lib文件夹不再PATH中
2、库文件的命名有问题。QT Creater默认的库文件都是以.so结尾的,但是Ubuntu中,/usr/lib/下的库文件很多都是类似于 libfreetype.so.6.3.20这样的文件名,然后再加一个名为libfreetype.so.6的软链接,这时就需要我们自己加一个名为 libfreetype.so的软链接指向libfreetype.so.6.3.20文件:sudo ln -svf /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so。3、权限的问题,我在刚开始解决 遇到的问题时,怀疑是路径的问题,便把库文件拷贝到了,makefile文件中的目录下,但是,还是不行,这里有一个权限的问题,我刚开始复制时是用 root权限复制的,之前遇到过,使用make是有文件无法链接,原因就是这些文件是root用户创建的,普通用户没有写权限,有读权限。
所以,如果当遇到依赖库找不到的情况时,首先到/usr/lib/下查找有没有这个库,如果有,但是名字不 对,只需要加个软链接就行了,不必费事重新安装一遍.
OK, 你的QT HelloWorld应该已经可以跑起来了吧.
qt编译遇到的库连接的问题
- g++ -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.5.0/lib -o part7 addressbook.o
- finddialog.o main.o moc_addressbook.o moc_finddialog.o -L/usr/local/Trolltech/QtEmbedded-4.5.0/lib
- -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.5.0/lib -lpng -lfreetype -pthread -pthread -pthread -pthread
- -pthread -pthread -lQtNetwork -pthread -pthread -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
- /usr/bin/ld: cannot find -lgthread-2.0
- collect2: ld 返回 1
- make: *** [part7] 错误 1
- g++ -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.5.0/lib -o part7 addressbook.o finddialog.o main.o moc_addressbook.o
- moc_finddialog.o -L/usr/local/Trolltech/QtEmbedded-4.5.0/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.5.0/lib
- -lpng -lfreetype -pthread -pthread -pthread -pthread -pthread -pthread -lQtNetwork -pthread -pthread -lQtCore -lz
- -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
- /usr/bin/ld: cannot find -lglib-2.0
- collect2: ld 返回 1
- make: *** [part7] 错误 1
这里出现的问题是链接的库文件找不到,可是我在/usr/lib下面找到了libgthread-2.0.so.0 ,libglib-2.0.so.0 这两个文件,明明有的,却怎么也找不到,这是为什么呢。。。。
到网上找了好久。。。。
下面这篇有点道理:
http://www.qtcn.org/bbs/simple/index.php?t19609.html
但是,我的问题还没解决,,我试着把makefile中的链接库删掉,结果一下子出来一大隹错误。
后来请教了高人,才知道,只是库命名的问题,简单的做了个软链接,一切搞定。。。汗!
- ln -svf /usr/lib/libglib-2.0.so.0 /usr/lib/libglib-2.0.so
- ln -svf /usr/lib/libgthread-2.0.so.0 /usr/lib/libgthread-2.0.so
这两个库文件与软连接的命名只差了一个.0
总结下来,这样的问题是因为库文件找不到的原因,很简单,有两种可能,一是,库文件不存在,就像刚刚贴的那片文章中的一样。这时候需要安装。二是库文件存 在,但是找不到,这种情况原因有多种,
1、路径不对,或是lib文件夹不再PATH中
2、库文件的命名有问题。就像我这次遇到的。
3、权限的问题,我在 刚开始解决遇到的问题时,怀疑是路径的问题,便把库文件拷贝到了,makefile文件中的目录下,但是,还是不行,这里有一个权限的问题,我刚开始复制 时是用root权限复制的,之前遇到过,使用make是有文件无法链接,原因就是这些文件是root用户创建的,普通用户没有读写权限,(或许有读权 限)。
还遇到过一个问题,就是QtGui头文件找不到,这只是qt头文件没有加到路径中。
小结:详细介绍 Ubuntu 9.04下Qt Creator 安装及配置的内容介绍完了,希望本文对你有所帮助!
【编辑推荐】