%general-entities; ]> $LastChangedBy$ $Date$ Qt-&qt4-version; Qt Introduction to Qt Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI) (in which cases Qt is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers. One of the major users of Qt is KDE. &lfs74_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &qt4-md5sum; Download size: &qt4-size; Estimated disk space required: &qt4-buildsize; Estimated build time: &qt4-time; Qt Dependencies Required and Recommended , , , (unicode support), , , , , , and Optional , (GTK+ 2 theme support), (For QtWebKit HTML5 Video), , , , (if also installing Qt5), and User Notes: Installation of Qt There are several ways to install a complicated package such as Qt. The files are not completely position independent. Installation procedures execute the program pkg-config to determine the location of package executables, libraries, headers, and other files. For Qt, pkg-config will look for the appropriate lib/pkgconfig/Qt*.pc files which must be modified if relocating the package. These files are set up correctly by the build process. The default installation places the files in /usr/local/qt/. Many commercial distributions place the files in the system's /usr hierarchy. The package can also be installed in an arbitrary directory. The advantage of installing in /usr is that no updates to the /etc/ld.so.conf or /etc/man_db.conf files are required. The package files are distributed within several subdirectories of the /usr hierarchy. This is the method that most commercial distributions use. It is also supported by the optional qtchooser application. The advantage of installing Qt4 in a custom directory such as /opt/qt-&qt4-version; is that it keeps all the package files consolidated in a dedicated directory hierarchy. By using this method, an update can be made without overwriting a previous installation and users can easily revert to a previous version by changing one symbolic link or merely changing the PATH variable. It also allows a developer to maintain multiple versions of Qt4 for testing. If you did not install some of the recommended dependencies, examine ./configure --help output to check how to disable them or use internal versions bundled in the source tarball. If Qt is being reinstalled into the same directory as an existing instance, run the following commands from a console or non-Qt based window manager. It overwrites Qt libraries that should not be in use during the install process. The build time and space required for the full Qt is quite long. The instructions below do not build the tutorials and examples. Removing the -nomake lines will create a complete build. Method 1: Installing in /usr Install Qt by running the following commands: sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ config.tests/unix/libmng/libmng.cpp && ./configure -prefix /usr \ -bindir /usr/lib/qt4/bin \ -plugindir /usr/lib/qt4/plugins \ -importdir /usr/lib/qt4/imports \ -headerdir /usr/include/qt4 \ -datadir /usr/share/qt4 \ -sysconfdir /etc/xdg \ -docdir /usr/share/doc/qt4 \ -demosdir /usr/share/doc/qt4/demos \ -examplesdir /usr/share/doc/qt4/examples \ -translationdir /usr/share/qt4/translations \ -confirm-license \ -opensource \ -release \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -no-phonon \ -no-phonon-backend \ -no-nis \ -no-openvg \ -nomake demos \ -nomake examples \ -optimized-qmake && make This package does not come with a test suite. Now, as the root user: make install && rm -rf /usr/tests && install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \ /usr/share/pixmaps/qt4logo.png && install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \ /usr/share/pixmaps/assistant-qt4.png && install -v -Dm644 tools/designer/src/designer/images/designer.png \ /usr/share/pixmaps/designer-qt4.png && install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \ /usr/share/pixmaps/linguist-qt4.png && install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \ /usr/share/pixmaps/qdbusviewer-qt4.png Remove references to the build directory from installed files by running the following command as the root user: for file in 3Support CLucene Core DBus Declarative DesignerComponents \ Designer Gui Help Multimedia Network OpenGL Script \ ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml do sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \ /usr/lib/libQt${file}.prl perl -pi -e "s, -L$PWD/?\S+,,g" /usr/lib/pkgconfig/Qt${file}.pc done unset file Symlink the Qt executables into /usr/bin by running the following commands as the root user: for file in /usr/lib/qt4/bin/* do ln -sfv ../lib/qt4/bin/$(basename $file) /usr/bin/$(basename $file)-qt4 done Method 2: Installing in /opt/qt-&qt4-version; Install Qt in /opt/qt-&qt4-version; by running the following commands: sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ config.tests/unix/libmng/libmng.cpp && export QTDIR=/opt/qt-&qt4-version; ./configure -prefix $QTDIR \ -sysconfdir /etc/xdg \ -confirm-license \ -opensource \ -release \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -plugin-sql-sqlite \ -no-phonon \ -no-phonon-backend \ -no-nis \ -no-openvg \ -nomake demos \ -nomake examples \ -optimized-qmake && make Now, as the root user: make install && ln -svfn qt-$VERSION /opt/qt && install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \ /usr/share/pixmaps/qt4logo.png && install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \ /usr/share/pixmaps/assistant-qt4.png && install -v -Dm644 tools/designer/src/designer/images/designer.png \ /usr/share/pixmaps/designer-qt4.png && install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \ /usr/share/pixmaps/linguist-qt4.png && install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \ /usr/share/pixmaps/qdbusviewer-qt4.png Remove references to the build directory from installed files by running the following command as the root user: for file in 3Support CLucene Core DBus Declarative DesignerComponents \ Designer Gui Help Multimedia Network OpenGL Script \ ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml; do sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \ $QTDIR/lib/libQt${file}.prl perl -pi -e "s, -L$PWD/?\S+,,g" $QTDIR/lib/pkgconfig/Qt${file}.pc done unset file Command Explanations sed -i "..." ...: This command fixes detection of libmng 2.0. -confirm-license: Accept license without prompting user during configuration. -opensource: Install the opensource version of Qt. -release: This switch disables building with debugging symbols. -nomake examples -nomake demos: These switches disable building programs that are only of interest to a Qt developer. -system-sqlite: This switch enables use the system version of SQLite. -no-nis: This switch disables support for Network Information Service (NIS) which has been deprecated in recent versions of Glibc. -no-phonon -no-phonon-backend: These switches disable building of the bundled Phonon library. Better version is provided by package. -dbus-linkend -openssl-linkend: These switches enable explicit linking of the D-Bus and OpenSSL libraries into Qt libraries instead of dlopen()-ing them. -no-openvg: This switch disables OpenVG support in Qt. -optimized-qmake: This switch enables building of the optimized qmake program. Configuring Qt Configuration Information If you installed Qt in /usr, create an environment variable needed by certain packages. As the root user: cat > /etc/profile.d/qt.sh << EOF # Begin /etc/profile.d/qt.sh QTDIR=/usr export QTDIR # End /etc/profile.d/qt.sh EOF If you installed Qt in a location other than /usr, you need to update the following configuration files so that Qt is correctly found by other packages and system processes. As the root user, update the /etc/ld.so.conf file and the dynamic linker's run-time cache file: cat >> /etc/ld.so.conf << EOF # Begin Qt addition /opt/qt/lib # End Qt addition EOF ldconfig /etc/ld.so.conf As the root user, create the /etc/profile.d/qt.sh file: cat > /etc/profile.d/qt.sh << EOF # Begin /etc/profile.d/qt.sh QTDIR=/opt/qt pathappend /opt/qt/bin PATH pathappend /opt/qt/lib/pkgconfig PKG_CONFIG_PATH export QTDIR # End /etc/profile.d/qt.sh EOF For all methods, Create the menu entries for installed applications. As the root user: install -dm755 /usr/share/applications cat > /usr/share/applications/qtconfig-qt4.desktop << "EOF" [Desktop Entry] Name=Qt4 Config Comment=Configure Qt4 behavior, styles, fonts Exec=qtconfig-qt4 Icon=qt4logo Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Settings; EOF cat > /usr/share/applications/assistant-qt4.desktop << "EOF" [Desktop Entry] Name=Qt4 Assistant Comment=Shows Qt4 documentation and examples Exec=assistant-qt4 Icon=assistant-qt4 Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Documentation; EOF cat > /usr/share/applications/designer-qt4.desktop << "EOF" [Desktop Entry] Name=Qt4 Designer Comment=Design GUIs for Qt4 applications Exec=designer-qt4 Icon=designer-qt4 MimeType=application/x-designer; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development; EOF cat > /usr/share/applications/linguist-qt4.desktop << "EOF" [Desktop Entry] Name=Qt4 Linguist Comment=Add translations to Qt4 applications Exec=linguist-qt4 Icon=linguist-qt4 MimeType=text/vnd.trolltech.linguist;application/x-linguist; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development; EOF cat > /usr/share/applications/qdbusviewer-qt4.desktop << "EOF" [Desktop Entry] Name=Qt4 QDbusViewer GenericName=D-Bus Debugger Comment=Debug D-Bus applications Exec=qdbusviewer-qt4 Icon=qdbusviewer-qt4 Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Debugger; EOF Contents Installed Programs Installed Libraries Installed Directories assistant-qt4, designer-qt4, lconvert-qt4, linguist-qt4, lrelease-qt4, lupdate-qt4, moc-qt4, pixeltool-qt4, qcollectiongenerator-qt4, qdbuscpp2xml-qt4, qdbus-qt4, qdbusviewer-qt4, qdbusxml2cpp-qt4, qdoc3-qt4, qhelpconverter-qt4, qhelpgenerator-qt4, qmake-qt4, qmlplugindump-qt4, qmlviewer-qt4, qt3to4-qt4, qtconfig-qt4, qttracereplay-qt4, rcc-qt4, uic3-qt4, uic-qt4, xmlpatterns-qt4 and xmlpatternsvalidator-qt4 libQt3Support.so, libQtCLucene.so, libQtCore.so, libQtDBus.so, libQtDeclarative.so, libQtDesignerComponents.so, libQtDesigner.so, libQtGui.so, libQtHelp.so, libQtMultimedia.so, libQtNetwork.so, libQtOpenGL.so, libQtScript.so, libQtScriptTools.so, libQtSql.so, libQtSvg.so, libQtTest.so, libQtWebKit.so, libQtXmlPatterns.so and libQtXml.so /usr/include/qt4, /usr/lib/qt4, /usr/share/doc/qt4, and /usr/share/qt4 (OR $QTDIR) (OR $QTDIR) Short Descriptions assistant-qt4 is a tool for presenting on-line documentation. assistant-qt4 designer-qt4 is a full-fledged GUI builder. It includes powerful features such as preview mode, automatic widget layout, support for custom widgets, and an advanced property editor. designer-qt4 linguist-qt4 provides support for translating applications into local languages. linguist-qt4 lrelease-qt4 is a simple command line tool. It reads a Qt project file and produces message files used by the application. lrelease-qt4 lupdate-qt4 reads a Qt project file, finds the translatable strings in the specified source, header and Qt Designer interface files, and produces or updates the translation files listed in the project file. lupdate-qt4 moc-qt4 generates Qt meta object support code. moc-qt4 pixeltool-qt4 is a desktop magnifier and as you move your mouse around the screen it will show the magnified contents in its window. pixeltool-qt4 qmake-qt4 uses information stored in project files to determine what should go in the makefiles it generates. qmake-qt4 qt3to4-qt4 qt3to4 is a tool to help update Qt3 code to Qt4. qt3to4-qt4 qtconfig-qt4 is used to customize the appearance of Qt applications. qtconfig-qt4 rcc-qt4 is a resource compiler used in conjunction with designer. rcc-qt4 uic-qt4 is a Qt user interface compiler. uic-qt4 uic3-qt4 is a tool to generate Qt4 code out of user interface files generated by the Qt3 version of designer. uic3-qt4