source: trunk/doc/src/platforms/compiler-notes.qdoc@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

  • Property svn:eol-style set to native
File size: 12.5 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the documentation of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*!
43 \page compiler-notes.html
44 \ingroup platform-specific
45 \title Compiler Notes
46 \brief Information about the C++ compilers and tools used to build Qt.
47
48 This page contains information about the C++ compilers and tools used
49 to build Qt on various platforms.
50
51 \tableofcontents
52
53 Please refer to the \l{Platform Notes} for information on the platforms
54 Qt is currently known to run on, and see the \l{Supported Platforms}
55 page for information about the status of each platform.
56
57 If you have anything to add to this list or any of the platform or
58 compiler-specific pages, please submit it via the \l{Bug Report Form}
59 or through the \l{Public Qt Repository}.
60
61 \section1 Supported Features
62
63 Not all compilers used to build Qt are able to compile all modules. The following table
64 shows the compiler support for five modules that are not uniformly available for all
65 platforms and compilers.
66
67 \table
68 \header \o Compiler \o{5,1} Features
69 \header \o \o Concurrent \o XmlPatterns \o WebKit \o CLucene \o Phonon
70 \row \o g++ 3.3 \o \o \bold{X} \o \o \bold{X} \o \bold{X}
71 \row \o g++ 3.4 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
72 \row
73 \row \o SunCC 5.5 \o \o \o \o \bold{X} \o \bold{X}
74 \row
75 \row \o aCC series 3 \o \o \o \o \bold{X} \o \bold{X}
76 \row \o aCC series 6 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
77 \row \o xlC 6 \o \o \o \o \bold{X} \o \bold{X}
78 \row \o Intel CC 10 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
79 \row
80 \row \o MSVC 2003 \o \bold{X} \o \bold{X} \o \o \bold{X} \o \bold{X}
81 \row \o MSVC 2005 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
82 \endtable
83
84 \target GCC
85 \section1 GCC
86
87 \section2 GCC on Windows (MinGW)
88
89 We have tested Qt with this compiler on Windows XP.
90 The minimal version of MinGW supported is:
91
92 \list
93 \o GCC 3.4.2
94 \o MinGW runtime 3.7
95 \o win32api 3.2
96 \o binutils 2.15.91
97 \o mingw32-make 3.80.0-3
98 \endlist
99
100 \note For users of the MinGW binary package: This package is now
101 based on MinGW 4.4. The installer no longer offers to download
102 MinGW for you, but rather offers to use a version of MinGW that
103 you already have installed on your machine. You just tell the
104 installer which directory MinGW is installed in. If you don't
105 already have MinGW 4.4 installed, you can download a .zip archive
106 from our \l{ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip} {ftp
107 site}. This archive provides fixes to MinGW and support for
108 missing API, See the _patches directory in the archive for
109 details.
110
111 \note A MinGW installation is only needed to build against the
112 binary pacakge, not to run the pre-compiled binaries that are in
113 the package.
114
115 \section2 GCC 4.0.0
116
117 The released package of the compiler has some bugs that lead to
118 miscompilations. We recommend using GCC 4.0.1 or later, or to use
119 a recent CVS snapshot of the GCC 4.0 branch. The version of GCC
120 4.0.0 that is shipped with Mac OS X 10.4 "Tiger" is known to work
121 with Qt for Mac OS X.
122
123 \section2 HP-UX
124
125 The hpux-g++ platform is tested with GCC 3.4.4.
126
127 \section2 Solaris
128
129 Please use GCC 3.4.2 or later.
130
131 \section2 Mac OS X
132
133 Please use the latest GCC 3.3 from Apple or a later version of GCC 3.
134 The gcc 3.3 that is provided with Xcode 1.5 is known to generate bad code.
135 Use the November 2004 GCC 3.3 updater \l{http://connect.apple.com}{available from Apple}.
136
137 \section2 GCC 3.4.6 (Debian 3.4.6-5) on AMD64 (x86_64)
138
139 This compiler is known to miscompile some parts of Qt when doing a
140 release build. There are several workarounds:
141
142 \list 1
143 \o Use a debug build instead.
144 \o For each miscompilation encountered, recompile the file, removing the -O2 option.
145 \o Add -fno-gcse to the QMAKE_CXXFLAGS_RELEASE.
146 \endlist
147
148 \section1 HP ANSI C++ (aCC)
149
150 The hpux-acc-32 and hpux-acc-64 platforms are tested with aCC A.03.57. The
151 hpuxi-acc-32 and hpuxi-acc-64 platforms are tested with aCC A.06.10.
152
153 \section1 Intel C++ Compiler
154
155 Qt supports the Intel C++ compiler on both Windows and Linux.
156 However, there are a few issues on Linux (see the following
157 section).
158
159 \section2 Intel C++ Compiler for Linux
160
161 Nokia currently tests the following compilers:
162
163 \list
164
165 \o Intel(R) C++ Compiler for applications running on IA-32,
166 Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
167
168 \o Intel(R) C++ Compiler for applications running on Intel(R) 64,
169 Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
170
171 \endlist
172
173 We do not currently test the IA-64 (Itanium) compiler.
174
175 \section2 Known Issues with Intel C++ Compiler for Linux
176
177 \list
178
179 \o Precompiled header support does not work in version 10.0.025
180 and older. For these compilers, you should configure Qt with
181 -no-pch. Precompiled header support works properly in version
182 10.0.026 and later.
183 \o Version 10.0.026 for Intel 64 is known to miscompile qmake when
184 building in release mode. For now, configure Qt with
185 -debug. Version 10.1.008 and later can compile qmake in release
186 mode.
187 \o Versions 10.1.008 to 10.1.015 for both IA-32 and Intel 64 are
188 known crash with "(0): internal error: 0_47021" when compiling
189 QtXmlPatterns, QtWebKit, and Designer in release mode. Version
190 10.1.017 compiles these modules correctly in release mode.
191 \endlist
192
193 \section2 Intel C++ Compiler (Windows, Altix)
194
195 Qt 4 has been tested successfully with:
196
197 \list
198 \o Windows - Intel(R) C++ Compiler for 32-bit applications,
199 Version 9.1.040.
200 \o Altix - Intel(R) C++ Itanium(R) Compiler for Itanium(R)-based
201 applications Version 8.1 Build 20050406 Package ID: l_cc_pc_8.1.030
202 \endlist
203
204 We currently only test the Intel compiler on 32-bit Windows versions.
205
206 \section1 MIPSpro (IRIX)
207
208 \bold{IRIX is an unsupported platform. See the \l{Supported Platforms} page
209 and Qt's Software's online \l{Platform Support Policy} page for details.}
210
211 Qt 4.4.x requires MIPSpro version 7.4.2m.
212
213 Note that MIPSpro version 7.4.4m is currently not supported, since it has
214 introduced a number of problems that have not yet been resolved.
215 We recommend using 7.4.2m for Qt development. However, please note the
216 unsupported status of this platform.
217
218 \target Sun Studio
219 \section1 Forte Developer / Sun Studio (Solaris)
220
221 \section2 Sun Studio
222
223 Qt is tested using Sun Studio 12 (Sun CC 5.9). Go to
224 \l{Sun Studio Patches} page on Sun's Web site to download
225 the latest patches for your Sun compiler.
226
227 Please note that Qt 4.6 is stricter in its STL requirements and
228 that the default STL implementation used by Sun CC does not pass
229 those requirements. This does not affect binary compatibility and
230 you can continue to use STL in your own code, but Qt's
231 STL-compatibility functions will be disabled.
232
233 Sun CC ships with a secondary STL implementation (called stlport4)
234 which is standards-compliant and can be used by Qt. You can enable
235 it by passing the -library=stlport4 option to the compiler. Note
236 that this does not affect Qt's binary compatibility, but it may
237 affect that of other libraries and programs that use STL.
238
239 \section2 Sun WorkShop 5.0
240
241 Sun WorkShop 5.0 is not supported with Qt 4.
242
243 \section1 Visual Studio (Windows)
244
245 We do most of our Windows development on Windows XP, using Microsoft
246 Visual Studio .NET 2005 and Visual Studio 2008 (both the 32- and 64-bit
247 versions).
248
249 Qt works with the Standard Edition, the Professional Edition and Team
250 System Edition of Visual Studio 2005.
251
252 We also test Qt 4 on Windows XP with Visual Studio .NET and Visual Studio 2003.
253
254 In order to use Qt with the Visual Studio 2005/2008 Express Edition you need
255 to download and install the platform SDK. Due to limitations in the
256 Express Edition it is not possible for us to install the Qt Visual
257 Studio Integration. You will need to use our command line tools to
258 build Qt applications with this edition.
259
260 The Visual C++ Linker doesn't understand filenames with spaces (as in
261 \c{C:\Program files\Qt\}) so you will have to move it to another place,
262 or explicitly set the path yourself; for example:
263
264 \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 0
265
266 If you are experiencing strange problems with using special flags that
267 modify the alignment of structure and union members (such as \c{/Zp2})
268 then you will need to recompile Qt with the flags set for the
269 application as well.
270
271 If you're using Visual Studio .NET (2002) Standard Edition, you should be
272 using the Qt binary package provided, and not the source package.
273 As the Standard Edition does not optimize compiled code, your compiled
274 version of Qt would perform suboptimally with respect to speed.
275
276 With Visual Studio 2005 Service Pack 1 a bug was introduced which
277 causes Qt not to compile, this has been fixed with a hotfix available
278 from Microsoft. See this
279 \l{http://qt.nokia.com/developer/faqs/faq.2006-12-18.3281869860}{Knowledge Base entry}
280 for more information.
281
282 \section1 IBM xlC (AIX)
283
284 The makeC++SharedLib utility must be in your PATH and be up to date to
285 build shared libraries. From IBM's
286 \l{http://www.redbooks.ibm.com/abstracts/sg245674.html}{C and C++ Application Development on AIX}
287 Redbook:
288
289 \list
290 \o "The second step is to use the makeC++SharedLib command to create the
291 shared object. The command has many optional arguments, but in its
292 simplest form, can be used as follows:"
293 \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 1
294 \o "The full path name to the command is not required; however, to avoid
295 this, you will have to add the directory in which it is located to
296 your PATH environment variable. The command is located in the
297 /usr/vacpp/bin directory with the VisualAge C++ Professional for AIX,
298 Version 5 compiler."
299 \endlist
300
301 \section2 VisualAge C++ for AIX, Version 6.0
302
303 Make sure you have the
304 \l{http://www-1.ibm.com/support/search.wss?rs=32&tc=SSEP5D&dc=D400}{latest upgrades}
305 installed.
306
307 \section2 GCCE (Symbian)
308
309 GCCE cannot be used to compile Qt libaries for the Symbian platform, but GCCE is supported
310 when compiling Qt applications for Symbian platform.
311*/
Note: See TracBrowser for help on using the repository browser.