source: trunk/doc/src/platforms/platform-notes.qdoc

Last change on this file was 865, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.3 sources from branches/vendor/nokia/qt.

  • Property svn:eol-style set to native
File size: 33.6 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation (qt-info@nokia.com)
6**
7** This file is part of the documentation of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:FDL$
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 a
14** written agreement between you and Nokia.
15**
16** GNU Free Documentation License
17** Alternatively, this file may be used under the terms of the GNU Free
18** Documentation License version 1.3 as published by the Free Software
19** Foundation and appearing in the file included in the packaging of this
20** file.
21**
22** If you have questions regarding the use of this file, please contact
23** Nokia at qt-info@nokia.com.
24** $QT_END_LICENSE$
25**
26****************************************************************************/
27
28/*!
29 \group platform-specific
30 \title Platform-Specific Documentation
31 \brief Documents describing platform-specific features of Qt.
32
33 These documents describe platform-specific features provided by Qt, and
34 discuss issues related to particular platforms and environments.
35
36 \generatelist{related}
37*/
38
39/*!
40 \page platform-notes.html
41 \ingroup platform-specific
42 \title Platform and Compiler Notes
43 \brief Information about the platforms on which Qt can be used.
44
45 This page contains information about the platforms Qt is currently known
46 to run on, with links to platform-specific notes, including any known bugs
47 or incompatibilities.
48
49 Information about the combinations of platforms and compilers
50 supported by Qt can be found on the \l{Supported Platforms} page.
51
52 \list
53 \o \l{Platform and Compiler Notes - X11}
54 \tableofcontents{1 Platform and Compiler Notes - X11}
55 \o \l{Platform and Compiler Notes - Windows}
56 \tableofcontents{1 Platform and Compiler Notes - Windows}
57 \o \l{Platform and Compiler Notes - Mac OS X}
58 \tableofcontents{1 Platform and Compiler Notes - Mac OS X}
59 \o \l{Platform and Compiler Notes - Symbian}
60 \tableofcontents{1 Platform and Compiler Notes - Symbian}
61 \o \l{Platform and Compiler Notes - Embedded Linux}
62 \tableofcontents{1 Platform and Compiler Notes - Embedded Linux}
63 \o \l{Platform and Compiler Notes - Windows CE}
64 \tableofcontents{1 Platform and Compiler Notes - Windows CE}
65 \o \l{Platform and Compiler Notes - QNX}
66 \tableofcontents{1 Platform and Compiler Notes - QNX}
67 \o \l{Platform and Compiler Notes - VxWorks}
68 \tableofcontents{1 Platform and Compiler Notes - VxWorks}
69 \endlist
70
71 \section1 General Compiler Notes
72
73 \section2 Supported Features
74
75 Not all compilers used to build Qt are able to compile all modules. The following table
76 shows the compiler support for five modules that are not uniformly available for all
77 platforms and compilers.
78
79 \table
80 \header \o Compiler \o{5,1} Features
81 \header \o \o Concurrent \o XmlPatterns \o WebKit(*) \o CLucene \o Phonon
82 \row \o g++ 3.3 \o \o \bold{X} \o \o \bold{X} \o \bold{X}
83 \row \o g++ 3.4 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
84 \row \o SunCC 5.5 \o \o \o \o \bold{X} \o \bold{X}
85 \row \o aCC series 3 \o \o \o \o \bold{X} \o \bold{X}
86 \row \o aCC series 6 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
87 \row \o xlC 6 \o \o \o \o \bold{X} \o \bold{X}
88 \row \o Intel CC 10 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
89 \row \o MSVC 2003 \o \bold{X} \o \bold{X} \o \o \bold{X} \o \bold{X}
90 \row \o MSVC 2005 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
91 \endtable
92
93 * WebKit is only supported as a dynamically built library. Static linkage is not supported.
94
95 \section2 GCC 3.4.6 (Debian 3.4.6-5) on AMD64 (x86_64)
96
97 This compiler is known to miscompile some parts of Qt when doing a
98 release build. There are several workarounds:
99
100 \list 1
101 \o Use a debug build instead.
102 \o For each miscompilation encountered, recompile the file, removing the \c{-O2} option.
103 \o Add \c{-fno-gcse} to the
104 \l{qmake Variable Reference#QMAKE_CXXFLAGS_RELEASE}{QMAKE_CXXFLAGS_RELEASE} qmake
105 variable.
106 \endlist
107
108 \section2 GCC 4.0.0
109
110 The released package of the compiler has some bugs that lead to
111 miscompilations. We recommend using GCC 4.0.1 or later, or to use
112 a recent CVS snapshot of the GCC 4.0 branch. The version of GCC
113 4.0.0 that is shipped with Mac OS X 10.4 "Tiger" is known to work
114 with Qt for Mac OS X.
115
116 \section2 Intel C++ Compiler
117
118 Qt supports the Intel C++ compiler on both Windows and Linux.
119 However, there are a few issues on Linux; see
120 \l{Platform and Compiler Notes - X11#Intel C++ Compiler for Linux}{Intel C++ Compiler for Linux}
121 for details.
122
123 \section1 Feedback and Corrections
124
125 If you have anything to add to this list or any of the platform or
126 compiler-specific pages, please submit it via the \l{Bug Report Form}
127 or through the \l{Public Qt Repository}.
128*/
129
130/*!
131 \page platform-notes-x11.html
132 \title Platform and Compiler Notes - X11
133 \contentspage Platform and Compiler Notes
134
135 This page contains information about the X11 platforms Qt is currently
136 known to run on, with links to platform-specific notes. More information
137 about the combinations of platforms and compilers supported by Qt can be
138 found on the \l{Supported Platforms} page.
139
140 \tableofcontents
141
142 \target AIX
143 \section1 AIX - 5.2
144
145 Qt has been tested on AIX 5.2, using the xlC compiler.
146
147 \table
148 \header \o Compiler \o Notes
149 \row \o xlC
150 \o If Qt is built correctly but all symbols are reported to be missing
151 when you link an application, your makeC++SharedLib script might be out
152 of date. Make sure you have the latest version from the
153 \l{http://www-306.ibm.com/software/awdtools/vacpp/support/}{IBM website}.
154 \row \o GCC
155 \o We have tested earlier versions of Qt 4 successfully with GCC version
156 3.3 and above. Some versions of GCC may fail to link Qt with a "TOC overflow"
157 message.
158 Fix this by upgrading to the latest maintenance release of the dynamic
159 linker. On AIX this is bos.rte.bind_cmds.4.1.5.3 or later.
160 Some versions of GCC may fail to build Qt with STL and large-file support
161 enabled, due to
162 \l{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9551}{a bug in GCC}.
163 Fix this by upgrading to the latest maintenance release of the compiler.
164 It is also possible to work around this problem by running configure with
165 either \c{-no-stl} or \c{-no-largefile}.
166 \endtable
167
168 \section2 IBM xlC
169
170 The makeC++SharedLib utility must be in your PATH and be up to date to
171 build shared libraries. From IBM's
172 \l{http://www.redbooks.ibm.com/abstracts/sg245674.html}{C and C++ Application Development on AIX}
173 Redbook:
174
175 \list
176 \o "The second step is to use the makeC++SharedLib command to create the
177 shared object. The command has many optional arguments, but in its
178 simplest form, can be used as follows:"
179 \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 1
180 \o "The full path name to the command is not required; however, to avoid
181 this, you will have to add the directory in which it is located to
182 your PATH environment variable. The command is located in the
183 /usr/vacpp/bin directory with the VisualAge C++ Professional for AIX,
184 Version 5 compiler."
185 \endlist
186
187 \section2 VisualAge C++ for AIX, Version 6.0
188
189 Make sure you have the
190 \l{http://www-1.ibm.com/support/search.wss?rs=32&tc=SSEP5D&dc=D400}{latest upgrades}
191 installed.
192
193 \target FreeBSD
194 \section1 FreeBSD - 6.0-RELEASE
195
196 \note FreeBSD is a community supported platform. See the
197 \l{Supported Platforms} page for more information.
198
199 The system compiler on FreeBSD 4.x is GCC 2.95.4, which is not
200 officially supported by Qt 4. We develop using and recommend
201 ports/lang/gcc34. You will need to run configure with the
202 \c{-platform freebsd-g++34} arguments. Optionally, you may use
203 ports/lang/icc.
204
205 The system compiler on FreeBSD 5.x and 6.x is GCC 3.4.4, which should be
206 sufficient to build Qt. You do not need to add any special arguments when
207 running configure. Optionally, you may use ports/lang/icc.
208
209 Note that we do not actively test FreeBSD 4.x and 5.x. Our developers
210 migrated to 6.x after the Qt 4 launch. FreeBSD-CURRENT is not supported.
211
212 \section1 HP-UX
213
214 Qt supports HP-UX on both PA-RISC and the Itanium (IA64) architectures.
215
216 \section2 PA-RISC - B.11.11 or later
217
218 You can configure Qt for aCC in 32 and 64 bit mode (hpux-acc-64 or
219 hpux-acc-32), or GCC in 32 bit mode (hpux-g++). The default platform is
220 hpux-acc-32. The minimum required version for aCC (HP ANSI C++) on PA-RISC
221 is A.03.57. The supported GCC compiler is GCC 3.4.3.
222
223 \section2 Itanium - B.11.23 or later
224
225 You can configure Qt for aCC in 32 and 64 bit mode (hpuxi-acc-64 or
226 hpuxi-acc-32). GCC is currently unsupported. The default platform is
227 hpuxi-acc-64. The minimum required version for aCC (HP ANSI C++) on
228 Itanium is A.06.12.
229
230 \section2 HP ANSI C++ (aCC)
231
232 The hpux-acc-32 and hpux-acc-64 platforms are tested with aCC A.03.57. The
233 hpuxi-acc-32 and hpuxi-acc-64 platforms are tested with aCC A.06.10.
234
235 \section2 GCC
236
237 The hpux-g++ platform is tested with GCC 3.4.4.
238
239 \section2 OpenGL Support
240
241 Qt's \l{QtOpenGL}{OpenGL} module requires GLX 1.3 or later to be installed.
242 This is available for HP-UX 11i - see the
243 \l{http://docs.hp.com/en/5992-2331/ch04s02.html}{Graphics and Technical Computing Software}
244 section of the release notes for more information.
245
246 \target IRIX
247 \section1 IRIX - 6.5.x
248
249 \bold{IRIX is an unsupported platform. See the \l{Supported Platforms} page
250 and Qt's Software's online \l{Platform Support Policy} page for details.}
251
252 Unpackaging and IRIX tar:
253 Because of long filenames some files will be cut off incorrectly with IRIX
254 tar. Please use GNU tar to unpack Qt packages.
255
256 \section2 MIPSpro
257
258 Qt 4.4.x requires MIPSpro version 7.4.2m.
259
260 Note that MIPSpro version 7.4.4m is currently not supported, since it has
261 introduced a number of problems that have not yet been resolved.
262 We recommend using 7.4.2m for Qt development. However, please note the
263 unsupported status of this platform.
264
265 \section1 Linux
266
267 There are no known problems with using Qt on production versions of
268 Linux/x86, Linux/ppc, Linux/amd64 and Linux/ia64 (including Altix(R)).
269
270 For the GCC compiler, please also see the relevant
271 \l{Platform and Compiler Notes#General Compiler Notes}{General Compiler Notes}.
272
273 \section2 Installation problems
274
275 See also the \l{Installation FAQ}.
276
277 If you experience problems when installing new open source versions of Qt
278 versions, try to use the open source Qt archives (e.g., RPM)
279 provided by your Linux distribution. If you need to install the source (.tgz)
280 archive, be aware that you will probably end up with two different
281 versions of the Qt library installed on your system, which will probably
282 lead to link errors, like this:
283 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 0
284 Fix this by removing the old version of the library.
285
286 If you have problems installing open source versions of Qt
287 provided by your Linux distribution (e.g., RPM), please consult the
288 maintainers of the distribution, not us.
289
290 Some RPM versions have problems installing some of the Qt RPM archives
291 where installation stops with an error message warning about a
292 "Failed Dependency". Use the \c{--nodeps} option to \c rpm to workaround
293 this problem.
294
295 \section2 Intel C++ Compiler for Linux
296
297 Nokia currently tests the following compilers:
298
299 \list
300
301 \o Intel(R) C++ Compiler for applications running on IA-32,
302 Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
303
304 \o Intel(R) C++ Compiler for applications running on Intel(R) 64,
305 Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
306
307 \endlist
308
309 We do not currently test the IA-64 (Itanium) compiler.
310
311 \section2 Known Issues with Intel C++ Compiler for Linux
312
313 \list
314
315 \o Precompiled header support does not work in version 10.0.025
316 and older. For these compilers, you should configure Qt with
317 -no-pch. Precompiled header support works properly in version
318 10.0.026 and later.
319 \o Version 10.0.026 for Intel 64 is known to miscompile qmake when
320 building in release mode. For now, configure Qt with
321 -debug. Version 10.1.008 and later can compile qmake in release
322 mode.
323 \o Versions 10.1.008 to 10.1.015 for both IA-32 and Intel 64 are
324 known crash with "(0): internal error: 0_47021" when compiling
325 QtXmlPatterns, QtWebKit, and Designer in release mode. Version
326 10.1.017 compiles these modules correctly in release mode.
327 \endlist
328
329 \target Solaris
330 \section1 Solaris - 9 or later
331
332 \section2 Unpackaging and Solaris tar
333
334 On some Solaris systems, both Solaris tar and GNU tar have been reported
335 to truncate long filenames. We recommend using star instead
336 (http://star.berlios.de).
337
338 Please note that WebKit is not supported for Solaris, regardless of
339 which compiler is used.
340
341 \section2 CC
342
343 See the notes for \l{Forte Developer / Sun Studio}.
344
345 \section2 GCC
346
347 Please use GCC 3.4.2 or later.
348
349 Do not use GCC with Sun's assembler/linker, this will result in link-time
350 errors in shared libraries. Use GNU binutils instead.
351
352 GCC 3.2.* is known to miscompile Qt due to an optimizer bug that will
353 cause the resulting binaries to hang.
354
355 \section2 Forte Developer / Sun Studio
356
357 Qt is tested using Sun Studio 12 (Sun CC 5.9). Go to
358 \l{Sun Studio Patches} page on Sun's Web site to download
359 the latest patches for your Sun compiler.
360
361 Please note that Qt 4.6 is stricter in its STL requirements and
362 that the default STL implementation used by Sun CC does not pass
363 those requirements. This does not affect binary compatibility and
364 you can continue to use STL in your own code, but Qt's
365 STL-compatibility functions will be disabled.
366
367 Sun CC ships with a secondary STL implementation (called stlport4)
368 which is standards-compliant and can be used by Qt. You can enable
369 it by passing the -library=stlport4 option to the compiler. Note
370 that this does not affect Qt's binary compatibility, but it may
371 affect that of other libraries and programs that use STL.
372
373 \section2 Sun WorkShop 5.0
374
375 Sun WorkShop 5.0 is not supported with Qt 4.
376*/
377
378/*!
379 \page platform-notes-windows.html
380 \title Platform and Compiler Notes - Windows
381 \contentspage Platform and Compiler Notes
382
383 This page contains information about the Windows platforms Qt is currently
384 known to run on, with links to platform-specific notes. More information
385 about the combinations of platforms and compilers supported by Qt can be
386 found on the \l{Supported Platforms} page.
387
388 \tableofcontents
389
390 \section1 Windows Vista
391
392 At the time Qt 4.7.3 was released, there were no known Vista-specific issues.
393
394 \target Windows NT
395 \section1 Windows XP, Windows 2000 and Windows NT
396
397 \section2 Installation location
398
399 Installing Qt into a directory with spaces, e.g. C:\\Program Files, may
400 cause linker errors like the following:
401 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 2
402
403 Install Qt into a subdirectory without spaces to avoid this problem.
404
405 \section2 Possible GL conflict
406
407 There is a known issue with running Microsoft NetMeeting, Lotus SameTime
408 and other applications that require screen grabbing while direct
409 rendering is enabled. Other GL-applications may not work as expected,
410 unless direct rendering is disabled.
411
412 \section2 GCC (MinGW)
413
414 We have tested Qt with this compiler on Windows XP.
415 The minimal version of MinGW supported is GCC 4.4.
416
417 \note For users of the MinGW binary package: This package is now
418 based on MinGW 4.4. The installer no longer offers to download
419 MinGW for you, but rather offers to use a version of MinGW that
420 you already have installed on your machine. You just tell the
421 installer which directory MinGW is installed in. If you don't
422 already have MinGW 4.4 installed, you can download a .zip archive
423 from our \l{ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip}{FTP
424 site}. This archive provides fixes to MinGW and support for
425 missing API, See the _patches directory in the archive for
426 details.
427
428 \note A MinGW installation is only needed to build against the
429 binary pacakge, not to run the pre-compiled binaries that are in
430 the package.
431
432 \section2 Intel C++ Compiler (Windows, Altix)
433
434 Qt 4 has been tested successfully with:
435
436 \list
437 \o Windows - Intel(R) C++ Compiler for 32-bit applications,
438 Version 9.1.040.
439 \o Altix - Intel(R) C++ Itanium(R) Compiler for Itanium(R)-based
440 applications Version 8.1 Build 20050406 Package ID: l_cc_pc_8.1.030
441 \endlist
442
443 We currently only test the Intel compiler on 32-bit Windows versions.
444
445 \section2 Visual Studio (Windows)
446
447 We do most of our Windows development on Windows XP, using Microsoft
448 Visual Studio .NET 2005 and Visual Studio 2008 (both the 32- and 64-bit
449 versions).
450
451 Qt works with the Standard Edition, the Professional Edition and Team
452 System Edition of Visual Studio 2005.
453
454 In order to use Qt with the Visual Studio 2005/2008 Express Edition you need
455 to download and install the platform SDK. Due to limitations in the
456 Express Edition it is not possible for us to install the Qt Visual
457 Studio Integration. You will need to use our command line tools to
458 build Qt applications with this edition.
459
460 The Visual C++ Linker doesn't understand filenames with spaces (as in
461 \c{C:\Program files\Qt\}) so you will have to move it to another place,
462 or explicitly set the path yourself; for example:
463
464 \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 0
465
466 If you are experiencing strange problems with using special flags that
467 modify the alignment of structure and union members (such as \c{/Zp2})
468 then you will need to recompile Qt with the flags set for the
469 application as well.
470
471 If you're using Visual Studio .NET (2002) Standard Edition, you should be
472 using the Qt binary package provided, and not the source package.
473 As the Standard Edition does not optimize compiled code, your compiled
474 version of Qt would perform suboptimally with respect to speed.
475
476 With Visual Studio 2005 Service Pack 1 a bug was introduced which
477 causes Qt not to compile, this has been fixed with a hotfix available
478 from Microsoft. See this
479 \l{http://qt.nokia.com/developer/faqs/faq.2006-12-18.3281869860}{Knowledge Base entry}
480 for more information.
481
482 There currently is a problem when compiling Qt with Visual Studio 2010 for 64-bit.
483 Its optimizer causes trouble and generates code that crashes for the release builds.
484 To avoid the crashes, You need to apply the hotfix in the following article
485 http://support.microsoft.com/kb/2280741.
486*/
487
488/*!
489 \page platform-notes-mac.html
490 \title Platform and Compiler Notes - Mac OS X
491 \contentspage Platform and Compiler Notes
492
493 This page contains information about the Mac OS X versions Qt is currently
494 known to run on, with links to platform-specific notes. More information
495 about the combinations of platforms and compilers supported by Qt can be
496 found on the \l{Supported Platforms} page.
497
498 \tableofcontents
499
500 \section1 General Information
501
502 Qt 4.6 applications can only be deployed on Mac OS X 10.4 (Tiger)
503 and higher.
504
505 Qt 4.4 and Qt 4.5 development is only supported on Mac OS X 10.4 and up.
506 Applications built against these version of Qt can be deployed on Mac OS X
507 10.3, but cannot be developed on that version of the operating system due
508 to compiler issues.
509
510 Qt 4.3 has been tested to run on Mac OS X 10.3.9 and up. See notes on
511 the binary package for more information.
512
513 Qt 4.1 has been tested to run on Mac OS X 10.2.8 and up. Qt 4.1.4 is the
514 last release to work with Mac OS X 10.2.
515
516 \section2 Required GCC version
517
518 Apple's GCC 4 that is shipped with the Xcode Tools for both Mac OS X 10.4
519 and 10.5 will compile Qt. There is preliminary support for GCC 4.2 which
520 is included with Xcode Tools 3.1+ (configurable with
521 \c{-platform macx-g++42}).
522
523 Please use the latest GCC 3.3 from Apple or a later version of GCC 3.
524 The GCC 3.3 that is provided with Xcode 1.5 is known to generate bad code.
525 Use the November 2004 GCC 3.3 updater \l{http://connect.apple.com}{available from Apple}.
526
527 \section2 Binary Package
528
529 The binary package requires that you have your .qt-license file in your
530 home directory. Installer.app cannot complete without a valid .qt-license
531 file. Evaluation users of Qt will have information about how to create
532 this file in the email they receive.
533
534 The binary package was built on Mac OS X 10.4 with Xcode Tools 2.1
535 (GCC 4.0.0) for Qt 4.1.0, Xcode Tools 2.2 (GCC 4.0.1) for Qt 4.1.1-4.1.4
536 and Xcode Tools 2.3 for 4.2.0. It will only link executables built
537 against 10.4 (or a 10.4 SDK). You should be able to run applications
538 linked against these frameworks on Mac OS X 10.3.9 and Mac OS X 10.4+.
539 If you require a different configuration, you will have to use the
540 source package and build with GCC 3.3.
541
542 \section2 Mac OS X on Intel hardware
543
544 Qt 4 fully supports both the Intel and PowerPC architectures on the Mac.
545 As of Qt 4.1 it is possible to support the Intel architecture by
546 creating Universal Binaries with qmake. As of Qt 4.1 it is possible to
547 build Qt as a set of universal binaries and frameworks from configure by
548 adding these extra flags:
549
550 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 3
551
552 If you are building on Intel hardware you can omit the sdk parameter, but
553 PowerPC hardware requires it.
554
555 You can also generate universal binaries using qmake. Simply add these
556 lines to your .pro file:
557
558 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 4
559
560 \section2 Build Issues
561
562 If Qt does not build upon executing make, and fails with an error message
563 such as
564
565 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 5
566
567 this could be an indication you have upgraded your version of Mac OS X
568 (e.g. 10.3 to 10.4), without upgrading your Developer Tools (Xcode Tools).
569 These must match in order to successfully compile files.
570
571 Please be sure to upgrade both simultaneously. If problems still occur,
572 contact support.
573
574 \section2 Fink
575
576 If you have installed the Qt for X11 package from \l{Fink},
577 it will set the QMAKESPEC environment variable to darwin-g++. This will
578 cause problems when you build the Qt for Mac OS X package. To fix this, simply
579 unset your QMAKESPEC or set it to macx-g++ before you run configure.
580 You need to have a fresh Qt distribution (make confclean).
581
582 \section2 MySQL and Mac OS X
583
584 There seems to be a issue when both -prebind and -multi_module are
585 defined when linking static C libraries into dynamic library. If you
586 get the following error message when linking Qt:
587
588 \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 6
589
590 re-link Qt using -single_module. This is only a problem when building the
591 MySQL driver into Qt. It does not affect plugins or static builds.
592
593 \section2 Qt and Precompiled Headers (PCH)
594
595 Starting with Qt 3.3.0 it is possible to use precompiled headers. They
596 are not enabled by default as it appears that some versions of Apple's
597 GCC and make have problems with this feature. If you want to use
598 precompiled headers when building the Qt source package, specify the
599 -pch option to configure. If, while using precompiled headers, you
600 encounter an internal compile error, try removing the -include header
601 statement from the compile line and trying again. If this solves the
602 problem, it probably is a good idea to turn off precompiled headers.
603 Also, consider filing a bug report with Apple so that they can
604 improve support for this feature.
605*/
606
607/*!
608 \page platform-notes-windows-ce.html
609 \title Platform and Compiler Notes - Windows CE
610 \contentspage Platform and Compiler Notes
611
612 This page contains information about the Windows CE and Windows Mobile
613 platforms Qt is currently known to run on, with links to platform-specific
614 notes. More information about the combinations of platforms and compilers
615 supported by Qt can be found on the \l{Supported Platforms} page.
616*/
617
618/*!
619 \page platform-notes-symbian.html
620 \title Platform and Compiler Notes - Symbian
621 \contentspage Platform and Compiler Notes
622 \ingroup platform-specific
623 \brief Information about the state of support for the Symbian platform.
624
625 As with any port, the maturity for Qt for Symbian has not yet reached the
626 same level as other established Qt ports. This page documents the current
627 notes for the Symbian port.
628
629 \section1 Source Compatibility
630
631 Qt for Symbian provides the same level of source compatibility guarantee as
632 given for other platforms. That is, a program which compiles against a given
633 version of Qt for Symbian will also compile against all future versions of the
634 same major release.
635
636 \section1 Binary Compatibility
637
638 As with every supported platform, we will strive to maintain
639 application behavior and binary compatibility throughout the lifetime of
640 the Qt 4.x series. However, due to the fact that Symbian support is newly
641 added in 4.6.0, there is a slight possibility that minor corrections to the
642 application binary interface (ABI) might be required in 4.6.1, in order to
643 ensure compatibility going forward. Any such change will be clearly
644 documented in the release notes for 4.6.1.
645
646 \section1 Supported Devices
647
648 Qt is designed to work on any device which runs one of the following
649 versions of Symbian:
650
651 \table
652 \header \o Symbian Version
653 \row \o S60 3.1
654 \row \o S60 3.2
655 \row \o S60 5.0 (Symbian ^1)
656 \endtable
657
658 Qt has received \l{Tier 1 Platforms}{Tier 1} testing on the following phone models:
659
660 \table
661 \header \o Phone
662 \row \o Nokia 5800
663 \row \o Nokia E71
664 \row \o Nokia E72
665 \row \o Nokia N78
666 \row \o Nokia N95
667 \row \o Nokia N97
668 \row \o Samsung i8910
669 \endtable
670
671 \section1 Supported Functionality
672
673 The following technologies and classes are not currently supported:
674
675 \table
676 \header \o Technology
677 \o Note
678 \row \o QtConcurrent
679 \o Planned for future release.
680 \row \o QtDBus
681 \o No current plans to support this feature.
682 \row \o QtOpenGL ES
683 \o Planned for future release.
684 \row \o Printing support
685 \o No current plans to support this feature.
686 \row \o Qt3Support
687 \o No current plans to support this feature.
688 \endtable
689
690 The following technologies have limited support:
691
692 \table
693 \header \o Technology
694 \o Note
695 \row \o QtSql
696 \o The only driver supported is SQLite.
697 \row \o QtMultimedia
698 \o Although the module itself is supported, no backend for Symbian
699 is currently available. However, there is a backend available
700 for Phonon.
701 \endtable
702
703 \section1 Compiler Notes
704
705 \section2 GCCE (Symbian)
706
707 GCCE cannot be used to compile Qt libaries for the Symbian platform, but GCCE is supported
708 when compiling Qt applications for the Symbian platform.
709
710 \section1 Known Issues
711
712 Known issues can be found by visiting the
713 \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}{wiki page} with an
714 up-to-date list of known issues, and the list of bugs can be found by
715 \l{http://bugreports.qt.nokia.com/browse/QTBUG/component/19171}{browsing} the
716 S60 component in Qt's public task tracker, located at
717 \l{http://bugreports.qt.nokia.com/}{http://bugreports.qt.nokia.com/}.
718
719 For information about mixing exceptions with Symbian leaves, see
720 \l{Exception Safety with Symbian}.
721
722 \section1 Required Capabilities
723
724 The Qt libraries are typically signed with \c{All -TCB} capabilites, but
725 that does not mean your Qt application needs to be signed with the same
726 capabilities to function properly. The capabilities your application needs
727 to function properly depends on which parts of Qt you use, here is an
728 overview:
729
730 \table
731 \header \o Module
732 \o Required Symbian Capability
733 \row \o QtCore
734 \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called.
735 \row \o QtCore
736 \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.}
737 \row \o QtDeclarative
738 \o \c NetworkServices is automatically added for this module.
739 \row \o QtNetwork
740 \o \c NetworkServices is automatically added for this module.
741 \row \o QtNetwork
742 \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list
743 (for example those added by the user or stored in the SIM card),
744 without this capability only the CA certs built into the phone are used.
745 \row \o QtMultiMedia
746 \o \c UserEnvironment if QAudioInput is used.
747 \row \o QtWebkit
748 \o \c NetworkServices is automatically added for this module.
749 \endtable
750
751 \note Some modules rely on other modules. E.g. QtWebkit and QtDeclarative
752 depend on QtNetwork and therefore any application that
753 depends on these modules is also likely to need \c NetworkServices capability.
754
755 For more information see the documentation of the individual Qt classes. If
756 a class does not mention Symbian capabilities, it requires none.
757
758 \section1 Multimedia and Phonon Support
759
760 Qt provides a backend for Qt's Phonon module, which supports
761 video and sound playback through Symbian's Multimedia Framework, MMF.
762
763 In this release the support is experimental. Video playback may have
764 flickering issues, and support for effects and playback queueing is
765 incomplete.
766
767 The audio and video formats that Phonon supports depends on what support
768 the platform provides for MMF. The emulator is known to have limited
769 codec support.
770
771 In addition, there exists a backend for the Helix framework. However, due
772 to it not shipping with Qt, its availability depends on the Symbian
773 platform in use. If available, it is loaded in preference over the MMF
774 plugin. If the Helix plugin fails to load, the MMF plugin, if present on
775 the device, will be loaded instead.
776
777 \section1 UI Performance in devices prior to Symbian^3
778
779 Qt uses the QPainter class to perform low-level painting on widgets and
780 other paint devices. QPainter provides functions to draw complex shapes,
781 aligned text and pixmaps. It can also do vector path clipping, coordinate
782 transformations and Porter-Duff composition. If the underlying graphics
783 architecture does not support all of these operations then Qt uses the
784 raster graphics system for rendering.
785
786 Most of the Symbian devices prior to Symbian^3 use a non-ScreenPlay
787 graphics architecture which does not have native support for all functions
788 provided by QPainter. In non-ScreenPlay devices Qt uses the raster
789 graphics system by default which has a performance penalty when compared
790 to native Symbian rendering.
791
792 In order to be able to perform all functions provided by QPainter, the
793 raster graphics system needs to have pixel level framebuffer access. To
794 make this possible in non-ScreenPlay devices Qt has to create an
795 additional offscreen buffer that is the target for all Qt rendering
796 operations. Qt renders the widget tree to the offscreen buffer and the
797 offscreen buffer is blitted to the framebuffer via Symbian Window Server.
798
799 The following table shows the rendering stacks of native Symbian and Qt in
800 non-ScreenPlay devices.
801
802 \table
803 \header \o Symbian
804 \o Qt
805 \row \o \image symbian-rendering-stack-non-screenplay.png
806 \o \image symbian-qt-rendering-stack-non-screenplay.png
807 \endtable
808
809 The following diagrams show a simplified sequence of drawing a pixmap in
810 a non-ScreenPlay device.
811
812 \table
813 \header \o Symbian
814 \row \o \image symbian-draw-pixmap-sequence.png
815 \endtable
816
817 \table
818 \header \o Qt
819 \row \o \image symbian-qt-draw-pixmap-sequence.png
820 \endtable
821
822 When compared to a native Symbian application, Qt does an additional blit
823 to the offscreen buffer before drawing to the framebuffer. That is the
824 performance penalty which needs to be paid to get all functionality
825 provided by QPainter in non-ScreenPlay architecture.
826*/
827
828/*!
829 \page platform-notes-embedded-linux.html
830 \title Platform and Compiler Notes - Embedded Linux
831 \contentspage Platform and Compiler Notes
832
833 This page contains information about the Embedded Linux platforms Qt is
834 currently known to run on, with links to platform-specific notes. More
835 information about the combinations of platforms and compilers supported
836 by Qt can be found on the \l{Supported Platforms} page.
837*/
Note: See TracBrowser for help on using the repository browser.