Qt Reference Documentation

# Platform and Compiler Notes - X11

This page contains information about the X11 platforms Qt is currently known to run on, with links to platform-specific notes. More information about the combinations of platforms and compilers supported by Qt can be found on the Supported Platforms page.

## AIX - 5.2

Qt has been tested on AIX 5.2, using the xlC compiler.

Compiler | Notes
--- | ---
xlC | If Qt is built correctly but all symbols are reported to be missing when you link an application, your makeC++SharedLib script might be out of date. Make sure you have the latest version from the IBM website.

GCC

We have tested earlier versions of Qt 4 successfully with GCC version 3.3 and above. Some versions of GCC may fail to link Qt with a "TOC overflow" message. Fix this by upgrading to the latest maintenance release of the dynamic linker. On AIX this is bos.rte.bind_cmds.4.1.5.3 or later. Some versions of GCC may fail to build Qt with STL and large-file support enabled, due to a bug in GCC. Fix this by upgrading to the latest maintenance release of the compiler. It is also possible to work around this problem by running configure with either `-no-stl` or `-no-largefile`.

### IBM xlC

The makeC++SharedLib utility must be in your PATH and be up to date to build shared libraries. From IBM's C and C++ Application Development on AIX Redbook:

- "The second step is to use the makeC++SharedLib command to create the shared object. The command has many optional arguments, but in its simplest form, can be used as follows:"

       /usr/vacpp/bin/makeC++SharedLib -o shr1.o cplussource1.o

- "The full path name to the command is not required; however, to avoid this, you will have to add the directory in which it is located to your PATH environment variable. The command is located in the /usr/vacpp/bin directory with the VisualAge C++ Professional for AIX, Version 5 compiler."

### VisualAge C++ for AIX, Version 6.0

Make sure you have the latest upgrades installed.

## FreeBSD - 6.0-RELEASE

Note: FreeBSD is a community supported platform. See the Supported Platforms page for more information.

The system compiler on FreeBSD 4.x is GCC 2.95.4, which is not officially supported by Qt 4. We develop using and recommend ports/lang/gcc34. You will need to run configure with the `-platform freebsd-g++34` arguments. Optionally, you may use ports/lang/icc.

The system compiler on FreeBSD 5.x and 6.x is GCC 3.4.4, which should be sufficient to build Qt. You do not need to add any special arguments when running configure. Optionally, you may use ports/lang/icc.

Note that we do not actively test FreeBSD 4.x and 5.x. Our developers migrated to 6.x after the Qt 4 launch. FreeBSD-CURRENT is not supported.

## HP-UX

Qt supports HP-UX on both PA-RISC and the Itanium (IA64) architectures.

### PA-RISC - B.11.11 or later

You can configure Qt for aCC in 32 and 64 bit mode (hpux-acc-64 or hpux-acc-32), or GCC in 32 bit mode (hpux-g++). The default platform is hpux-acc-32. The minimum required version for aCC (HP ANSI C++) on PA-RISC is A.03.57. The supported GCC compiler is GCC 3.4.3.

### Itanium - B.11.23 or later

You can configure Qt for aCC in 32 and 64 bit mode (hpuxi-acc-64 or hpuxi-acc-32). GCC is currently unsupported. The default platform is hpuxi-acc-64. The minimum required version for aCC (HP ANSI C++) on Itanium is A.06.12.

### HP ANSI C++ (aCC)

The hpux-acc-32 and hpux-acc-64 platforms are tested with aCC A.03.57. The hpuxi-acc-32 and hpuxi-acc-64 platforms are tested with aCC A.06.10.

### GCC

The hpux-g++ platform is tested with GCC 3.4.4.

### OpenGL Support

Qt's OpenGL module requires GLX 1.3 or later to be installed. This is available for HP-UX 11i - see the Graphics and Technical Computing Software section of the release notes for more information.

## IRIX - 6.5.x

IRIX is an unsupported platform. See the Supported Platforms page and Qt's Software's online Platform Support Policy page for details.

Unpackaging and IRIX tar: Because of long filenames some files will be cut off incorrectly with IRIX tar. Please use GNU tar to unpack Qt packages.

### MIPSpro

Qt 4.4.x requires MIPSpro version 7.4.2m.

Note that MIPSpro version 7.4.4m is currently not supported, since it has introduced a number of problems that have not yet been resolved. We recommend using 7.4.2m for Qt development. However, please note the unsupported status of this platform.

## Linux

There are no known problems with using Qt on production versions of Linux/x86, Linux/ppc, Linux/amd64 and Linux/ia64 (including Altix(R)).

For the GCC compiler, please also see the relevant General Compiler Notes.

### Installation problems

See also the Installation FAQ.

If you experience problems when installing new open source versions of Qt versions, try to use the open source Qt archives (e.g., RPM) provided by your Linux distribution. If you need to install the source (.tgz) archive, be aware that you will probably end up with two different versions of the Qt library installed on your system, which will probably lead to link errors, like this:

     undefined reference to `_vt.11QPushButton'

Fix this by removing the old version of the library.

If you have problems installing open source versions of Qt provided by your Linux distribution (e.g., RPM), please consult the maintainers of the distribution, not us.

Some RPM versions have problems installing some of the Qt RPM archives where installation stops with an error message warning about a "Failed Dependency". Use the `--nodeps` option to `rpm` to workaround this problem.

### Intel C++ Compiler for Linux

Nokia currently tests the following compilers:

- Intel(R) C++ Compiler for applications running on IA-32, Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
- Intel(R) C++ Compiler for applications running on Intel(R) 64, Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017

We do not currently test the IA-64 (Itanium) compiler.

### Known Issues with Intel C++ Compiler for Linux

- Precompiled header support does not work in version 10.0.025 and older. For these compilers, you should configure Qt with -no-pch. Precompiled header support works properly in version 10.0.026 and later.
- Version 10.0.026 for Intel 64 is known to miscompile qmake when building in release mode. For now, configure Qt with -debug. Version 10.1.008 and later can compile qmake in release mode.
- Versions 10.1.008 to 10.1.015 for both IA-32 and Intel 64 are known crash with "(0): internal error: 0_47021" when compiling QtXmlPatterns, QtWebKit, and Designer in release mode. Version 10.1.017 compiles these modules correctly in release mode.

## Solaris - 9 or later

### Unpackaging and Solaris tar

On some Solaris systems, both Solaris tar and GNU tar have been reported to truncate long filenames. We recommend using star instead (http://star.berlios.de).

Please note that WebKit is not supported for Solaris, regardless of which compiler is used.

### CC

See the notes for Forte Developer / Sun Studio.

### GCC

Please use GCC 3.4.2 or later.

Do not use GCC with Sun's assembler/linker, this will result in link-time errors in shared libraries. Use GNU binutils instead.

GCC 3.2.* is known to miscompile Qt due to an optimizer bug that will cause the resulting binaries to hang.

### Forte Developer / Sun Studio

Qt is tested using Sun Studio 12 (Sun CC 5.9). Go to Sun Studio Patches page on Sun's Web site to download the latest patches for your Sun compiler.

Please note that Qt 4.6 is stricter in its STL requirements and that the default STL implementation used by Sun CC does not pass those requirements. This does not affect binary compatibility and you can continue to use STL in your own code, but Qt's STL-compatibility functions will be disabled.

Sun CC ships with a secondary STL implementation (called stlport4) which is standards-compliant and can be used by Qt. You can enable it by passing the -library=stlport4 option to the compiler. Note that this does not affect Qt's binary compatibility, but it may affect that of other libraries and programs that use STL.

### Sun WorkShop 5.0

Sun WorkShop 5.0 is not supported with Qt 4.