|  | Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# Compiler Notes

This page contains information about the C++ compilers and tools used to build Qt on various platforms.

- GCC (most platforms)

- GCC on Windows (MinGW)
- gcc 4.0.0
- HP-UX
- Solaris
- Mac OS X
- gcc (GCC) 3.4.6 (Debian 3.4.6-5) on AMD64 (x86_64)

- HP aC++ (HP-UX)
- Intel C++ (Linux, Windows, FreeBSD)
- MIPSpro (IRIX)
- Forte Developer / Sun Studio (Solaris)

- Sun Studio
- Sun WorkShop 5.0

- Visual Studio (Windows)
- IBM xlC (AIX)

- VisualAge C++ for AIX, Version 6.0

Please refer to the Platform Notes for information on the platforms Qt is currently known to run on.

If you have anything to add to this list or any of the platform or compiler-specific pages, please submit it via the Bug Report Form.

### GCC (most platforms)

Trolltech supports building Qt with gcc 3.2 and later. Older versions of gcc are not recommended and not supported by Trolltech. They might or might not work.

#### GCC on Windows (MinGW)

We have tested Qt with this compiler on Windows 2000 and Windows XP. The minimal version of MinGW supported is:

- gcc 3.4.2
- mingw runtime 3.7
- win32api 3.2
- binutils 2.15.91
- mingw32-make 3.80.0-3

#### gcc 4.0.0

The released package of the compiler has some bugs that lead to miscompilations. We recommend using gcc 4.0.1 or later, or to use a recent CVS snapshot of the gcc 4.0 branch. The version of gcc 4.0.0 that is shipped with Mac OS X 10.4 "Tiger" is known to work with Qt/Mac.

#### HP-UX

Please use gcc 3.2.3 or better.

#### Solaris

Please use gcc 3.3.0 or better.

#### Mac OS X

Please use the latest gcc 3.3 from Apple or better. The gcc 3.3 that is provided with Xcode 1.5 is known to generate bad code, use the November 2004 GCC 3.3 updater available from Apple.

#### gcc (GCC) 3.4.6 (Debian 3.4.6-5) on AMD64 (x86_64)

This compiler is known to miscompile some parts of Qt when doing a release build. There are several workarounds:

1. Use a debug build instead.
2. For each miscompilation encountered, recompile the file, removing the -O2 option.
3. Add -fno-gcse to the QMAKE_CXXFLAGS_RELEASE.

### HP aC++ (HP-UX)

If you are using an aCC earlier then aCC 3.3x you have to change the `QMAKE_CC` in the following way when configuring Qt:

     QMAKE_CC = cc

It maybe also be necessary to modify `QMAKE_CFLAGS`.

Earlier versions of aCC do not support the `-Ae` option (this enables the ANSI C c89 mode) and therefore you need to use `cc` instead.

### Intel C++ (Linux, Windows, FreeBSD)

Qt 4 has been tested successfully with:

- Windows - Intel(R) C++ Compiler for 32-bit applications, Version 8.1 Build 20050309Z Package ID: W_CC_PC_8.1.026
- Linux - Intel(R) C++ Itanium(R) Compiler for Itanium(R)-based applications Version 8.1 Build 20050518 Package ID: l_cc_pc_8.1.032
- Altix - Intel(R) C++ Itanium(R) Compiler for Itanium(R)-based applications Version 8.1 Build 20050406 Package ID: l_cc_pc_8.1.030
- FreeBSD - Intel(R) C++ Compiler for 32-bit applications, Version 8.1 Build 20050520Z Package ID: l_cc_pc_8.1.032

We currently only test the Intel compiler on 32-bit Windows versions.

### MIPSpro (IRIX)

Qt 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.

### Forte Developer / Sun Studio (Solaris)

#### Sun Studio

Qt is tested using Sun Studio 9 and Sun Studio 10. Go to Sun's website to download the latest patches for your Sun compiler.

#### Sun WorkShop 5.0

Sun WorkShop 5.0 is not supported with Qt 4.

### Visual Studio (Windows)

We do most of our Windows development on Windows XP, using Microsoft Visual Studio .NET 2003 and Visual Studio 2005 (both the 32- and 64-bit versions).

Qt works with the Standard Edition, the Professional Edition and Team System Edition of Visual Studio 2005.

We also test Qt 4 on Windows 98/Me, Windows NT and Windows 2000, with Microsoft Visual C++ 6.0 and Visual Studio .NET.

In order to use Qt with the Visual Studio 2005 Express Edition you need to download and install the platform SDK. Due to limitations in the Express Edition it is not possible for us to install the Qt Visual Studio Integration. You will need to use our command line tools to build Qt applications with this edition.

The Visual C++ Linker doesn't understand filenames with spaces (as in `C:\Program files\Qt\`) so you will have to move it to another place, or explicitly set the path yourself; for example:

     QTDIR=C:\Progra~1\Qt

Visual C++ 6.0 requires Service Pack 5 to work correctly with Qt. If you are using Visual C++ version 6.0 we highly recommend that you update to SP5.

If you are experiencing strange problems with using special flags that modify the alignment of structure and union members (such as `/Zp2`) then you will need to recompile Qt with the flags set for the application as well.

If you're using Visual Studio .NET Standard Edition, you should be using the Qt binary package provided, and not the source package. As the Standard Edition does not optimize compiled code, your compiled version of Qt would perform suboptimally with respect to speed.

With Visual Studio 2005 Service Pack 1 a bug was introduced which causes Qt not to compile, this has been fixed with a hotfix available from Microsoft. See this Knowledge Base entry for more information.

### IBM xlC (AIX)

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.