讲解在Linux下配置QT 学习之路是本文要介绍的内容,介绍了各种工具包等一些内容。先来看内容。

本文介绍的是讲解在Linux下配置QT 学习之路,我们首先来看内容。在CentOS下配置QT:通过yum search QT,得知源上可以安装的QT软件列表如下(有很多QT组件可以选择安装):

qt.i386 : Qt GUI 工具包的共享库。

qt-MySQL.i386 : 用于 Qt 的 SQL 类别的 MySQL 驱动程序。

qt-ODBC.i386 : 用于 Qt 的 SQL 类别的 ODBC 驱动程序。

qt-PostgreSQL.i386 : 用于 Qt 的 SQL 类别的 PostgreSQL 驱动程序。

qt-config.i386 : 为使用 Qt 的程序提供的图形化配置工具。

qt-designer.i386 : Qt GUI 工具包的界面设计程序 (IDE)

  1. qt-devel.i386:DevelopmentfilesfortheQtGUItoolkit.
  2. qt-devel-docs.i386:DocumentationfortheQtGUItoolkit.
  3. wpa_supplicant-gui.i386:GraphicalUserInterfaceforwpa_supplicant

PyQt.i386 : Qt 的 Python 绑定

PyQt-devel.i386 : 要建构基于 Qt 的其它绑定所需的文件

PyQt-examples.i386 : PyQt 的样例

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient

scim-qtimm.i386 : Qt 的 SCIM 输入法模块 // 这个是SCIM模块,用Qt实现的吧?

  1. scribus.i386:DeskTopPublishingapplicationwritteninQt
  2. sip.i386:SIP-Python/C++绑定生成器.

通过rpm命令查询已经安装的Qt软件:

  1. [root@Tomato~]#rpm-qa|grepqt
  2. qt-3.3.6-23.el5
  3. scim-qtimm-0.9.4-5
  4. avahi-qt3-0.6.16-6.el5//Qt3和Qt4可以同时共存吗?

Linux上编译居然因为环境变量,而报错:

  1. QMAKESPEChasnotbeenset,soconfigurationcannotbededuced.
  2. Errorprocessingprojectfile:/root/qt/qt.pro

在脚本里加入该环境变量,这个错误已经消失:

  1. [root@localhostqt]#ls
  2. hello.cpp
  3. [root@localhostqt]#qmake-project
  4. [root@localhostqt]#ls
  5. hello.cppqt.pro
  6. [root@localhostqt]#qmake
  7. [root@localhostqt]#ls
  8. hello.cppMakefileqt.pro

Make报如下错误:

  1. [root@localhostqt]#make
  2. g++-c-pipe-O2-Wall-W-D_REENTRANT-DQT_NO_DEBUG-DQT_GUI_LIB-DQT_CORE_LIB
  3. -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++-I.
  4. -I/work/program/qtdevelop/include/QtCore-I/work/program/qtdevelop/include/QtGui
  5. -I/work/program/qtdevelop/include-I.-I.-ohello.ohello.cpp
  6. hello.cpp:1:24:错误:QApplication:没有那个文件或目录
  7. hello.cpp:2:18:错误:QLabel:没有那个文件或目录
  8. hello.cpp:Infunction‘intmain(int,char**)’:
  9. hello.cpp:6:错误:‘QApplication’在此作用域中尚未声明
  10. hello.cpp:6:错误:expected`;'before‘app’
  11. hello.cpp:7:错误:‘QLabel’在此作用域中尚未声明
  12. hello.cpp:7:错误:‘label’在此作用域中尚未声明
  13. hello.cpp:7:错误:expectedtype-specifierbefore‘QLabel’
  14. hello.cpp:7:错误:expected`;'before‘QLabel’
  15. hello.cpp:9:错误:‘app’在此作用域中尚未声明
  16. hello.cpp:Atglobalscope:
  17. hello.cpp:4:警告:未使用的参数‘argc’
  18. hello.cpp:4:警告:未使用的参数‘argv’
  19. make:***[hello.o]错误1

生成的Makefile有些问题:

  1. CC=gcc
  2. CXX=g++
  3. DEFINES=-DQT_NO_DEBUG-DQT_GUI_LIB-DQT_CORE_LIB
  4. CFLAGS=-pipe-O2-Wall-W-D_REENTRANT$(DEFINES)
  5. CXXFLAGS=-pipe-O2-Wall-W-D_REENTRANT$(DEFINES)
  6. INCPATH=-I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/l
  7. inux-g++-I.-I/work/program/qtdevelop/include/QtCore-I/work/program/qtdevelop/
  8. include/QtGui-I/work/program/qtdevelop/include-I.-I.//这个路径是怎么生成的?.
  9. LINK=g++
  10. LFLAGS=-Wl,-O1
  11. LIBS=$(SUBLIBS)-L/work/program/qtdevelop/lib-lQtGui-lQtCore-lpth
  12. read

简单文件运行出错:

  1. [root@localhostc++]#./a.out
  2. -bash:./a.out:cannotexecutebinaryfile//刚开始出这个错是什么原因啊?重新编译后就正常了。。。
  3. [root@localhostc++]#filea.out
  4. a.out:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.6.9,
  5. dynamicallylinked(usessharedlibs),forGNU/Linux2.6.9,notstripped

修改Makefile之后,文件编译成功,但是运行仍然是报错的:

  1. [root@localhostqt]#make
  2. g++-c-pipe-O2-Wall-W-D_REENTRANT-DQT_NO_DEBUG-DQT_GUI_LIB-DQT_CORE_LIB
  3. -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++-I.
  4. -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/include/QtCore
  5. -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/include/QtGui
  6. -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/include-I.-I.-ohello.ohello.cpp
  7. g++-Wl,-O1-oqthello.o-L/work/program/dsk/qt-everywhere-opensource-src-4.6.1/lib-lQtGui-lQtCore-lpthread
  8. [root@localhostqt]#ls
  9. hello.cpphello.oMakefileqtqt.pro
  10. [root@localhostqt]#./qt
  11. ./qt:errorwhileloadingsharedlibraries:libQtGui.so.4:cannotopensharedobjectfile:Nosuchfileordirectory

100216 缺少这个动态链接库,如何办?: 可以直接在路径里加上吗?

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
0

ld文件配置:

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
1

这个目录下还有很多配置文件:

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
2

Qt库文件的实际位置:

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
3

设置完ld路径后,运行成功第一个Qt程序。。。:

现在的ld.so.conf.d下的qt配置内容如下:

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
4

讲解在Linux下配置QT 学习之路(linux安装配置qt)  QT Linux 第1张

ld设置后,基于Qt的应用启动不了。。。:

把/usr/lib/qt-3.3/lib注释掉,只配置下面的选项(运行基于qt-3.3的应用程序出错,在界面是跳出报错窗口)。

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
5

在命令行报出的错误则有些不同:

  1. avahi-qt3.i386:Qt3librariesforavahi//avahi是什么东西?
  2. avahi-qt3-devel.i386:LibrariesandheaderfilesforavahiQt3development
  3. pinentry-qt.i386:Passphrase/PINentrydialogbasedonQt
  4. qt4.i386:ThesharedlibraryfortheQtGUItoolkit
  5. qt4-devel.i386:DevelopmentfilesfortheQtGUItoolkit
  6. qt4-doc.i386:APIdocumentation,demosandexampleprogramsforqt4
  7. qt4-mysql.i386:MySQLdriversforQt'sSQLclasses
  8. qt4-odbc.i386:ODBCdriversforQt'sSQLclasses
  9. qt4-postgresql.i386:PostgreSQLdriversforQt'sSQLclasses
  10. qt4-sqlite.i386:SQLitedriversforQt'sSQLclasses
  11. qtnx.i386:QT4basedFreeNXClient
6

讲解在Linux下配置QT 学习之路(linux安装配置qt)  QT Linux 第2张

小结:关于讲解在Linux下配置QT 学习之路的内容介绍完了希望本文对你有所帮助!

转载请说明出处
知优网 » 讲解在Linux下配置QT 学习之路(linux安装配置qt)

发表评论

您需要后才能发表评论