File: fine-tuning-features.html

package info (click to toggle)
qt4-x11 4%3A4.8.2%2Bdfsg-11
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 701,696 kB
  • sloc: cpp: 2,686,179; ansic: 375,485; python: 25,859; sh: 19,349; xml: 17,091; perl: 14,765; yacc: 5,383; asm: 5,038; makefile: 1,259; lex: 555; ruby: 526; objc: 347; cs: 112; pascal: 112; php: 54; sed: 34
file content (92 lines) | stat: -rw-r--r-- 6,507 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- emb-features.qdoc -->
  <title>Qt 4.8: Fine-Tuning Features in Qt</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="content"> 
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
  </div>
  <div class="breadcrumb toolblock">
    <ul>
      <li class="first"><a href="index.html">Home</a></li>
      <!--  Breadcrumbs go here -->
<li>Fine-Tuning Features in Qt</li>
    </ul>
  </div>
</div>
<div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#simple-customization">Simple Customization</a></li>
<li class="level2"><a href="#embedded-linux">Embedded Linux</a></li>
<li class="level2"><a href="#windows-ce">Windows CE</a></li>
<li class="level1"><a href="#managing-large-numbers-of-features">Managing Large Numbers of Features</a></li>
</ul>
</div>
<h1 class="title">Fine-Tuning Features in Qt</h1>
<span class="subtitle"></span>
<!-- $$$fine-tuning-features.html-description -->
<div class="descr"> <a name="details"></a>
<p>In many cases, only a fixed set of applications are deployed on an embedded device, making it possible to save resources by minimizing the size of the associated libraries. The Qt installation can easily be optimized by avoiding to compile in the features that are not required.</p>
<p>A wide range of features are defined, covering classes and technologies provided by several of Qt's modules. You can look up the different feature definitions in the <tt>src/corelib/global/qfeatures.txt</tt> file within the Qt source distribution.</p>
<a name="simple-customization"></a>
<h2>Simple Customization</h2>
<a name="embedded-linux"></a>
<h3>Embedded Linux</h3>
<p>To disable a particular feature, just run the <tt>configure</tt> script for Qt for Embedded Linux with the <tt>-no-feature-&lt;feature&gt;</tt> option. For example:</p>
<pre class="cpp"> ./configure -no-feature-thread</pre>
<p>The feature can easily be enabled again by running <tt>configure</tt> with the <tt>-feature-&lt;feature&gt;</tt> option.</p>
<p>See also <a href="qt-performance.html">Qt Performance Tuning</a>.</p>
<a name="windows-ce"></a>
<h3>Windows CE</h3>
<p>To disable a particular feature, just run the <tt>configure</tt> script with the set of required <tt>-D&lt;feature&gt;</tt> options. For example, you can use the <tt>-D</tt> option to define <tt>QT_NO_THREAD</tt>:</p>
<pre class="cpp"> configure.exe -D QT_NO_THREAD</pre>
<p>The <tt>-D</tt> option only creates a Qt internal define. If you get linker errors you have to define <tt>QT_NO_THREAD</tt> also for your project. You can do this by adding <tt>DEFINES</tt> += <tt>QT_NO_THREAD</tt> to your <tt>.pro</tt> file.</p>
<p>See also <a href="qt-performance.html">Qt Performance Tuning</a>.</p>
<a name="managing-large-numbers-of-features"></a>
<h2>Managing Large Numbers of Features</h2>
<p>If you want to disable a lot of features, it is more comfortable to use the <tt>qconfig</tt> tool. You can disable a <i>set</i> of features by creating a custom configuration file that defines the preferred subset of Qt's functionality. Such a file uses macros to disable the unwanted features, and can be created manually or by using the <tt>qconfig</tt> tool located in the <tt>tools/qconfig</tt> directory of the Qt source distribution.</p>
<p><b>Note:</b> The <tt>qconfig</tt> tool is intended to be built against Qt on desktop platforms.</p>
<p class="centerAlign"><img src="images/qt-embedded-qconfigtool.png" alt="" /></p><p>The <tt>qconfig</tt> tool's interface displays all of Qt's functionality, and allows the user to both disable and enable features. The user can open and edit any custom configuration file located in the <tt>src/corelib/global</tt> directory. When creating a custom configuration file manually, a description of the currently available Qt features can be found in the <tt>src/corelib/global/qfeatures.txt</tt> file.</p>
<p>Note that some features depend on others; disabling any feature will automatically disable all features depending on it. The feature dependencies can be explored using the <tt>qconfig</tt> tool, but they are also described in the <tt>src/corelib/global/qfeatures.h</tt> file.</p>
<p>To be able to apply the custom configuration, it must be saved in a file called <tt>qconfig-myfile.h</tt> in the <tt>src/corelib/global</tt> directory. Then use the <tt>configure</tt> tool's <tt>-qconfig</tt> option and pass the configuration's file name without the <tt>qconfig-</tt> prefix and <tt>.h</tt> extension, as argument. The following examples show how this is invoked on each of the embedded platforms for a file called <tt>qconfig-myfile.h</tt>:</p>
<p><b>Embedded Linux:</b></p>
<pre class="cpp"> ./configure -qconfig myfile</pre>
<p><b>Windows CE:</b></p>
<pre class="cpp"> configure.exe -qconfig myfile</pre>
<p>Qt provides several ready-made custom configuration files, defining minimal, small, medium and large installations, respectively. These files are located in the <tt>/src/corelib/global</tt> directory in the Qt source distribution.</p>
</div>
<!-- @@@fine-tuning-features.html -->
  <div class="ft">
    <span></span>
  </div>
</div> 
<div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2012 Nokia Corporation and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Nokia, Qt and their respective logos are trademarks of Nokia Corporation 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
</div>
</body>
</html>