qwtinstall.html 16.3 KB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>Qwt User&#39;s Guide: INSTALL</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Qwt User&#39;s Guide
   &#160;<span id="projectnumber">6.1-rc3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">INSTALL </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div class="fragment"><div class="line">Introduction</div>
<div class="line">============</div>
<div class="line"></div>
<div class="line">Qwt uses qmake to build all its components and examples. </div>
<div class="line">qmake is part of a Qt distribution. </div>
<div class="line"></div>
<div class="line">qmake reads project files, that contain the options and rules how to </div>
<div class="line">build a certain project. A project file ends with the suffix <span class="stringliteral">&quot;*.pro&quot;</span>. </div>
<div class="line">Files that end with the suffix <span class="stringliteral">&quot;*.pri&quot;</span> are included by the project </div>
<div class="line">files and contain definitions, that are common <span class="keywordflow">for</span> several project files.</div>
<div class="line"></div>
<div class="line">qwtconfig.pri and qwtbuild.pri are read by all project files of the Qwt </div>
<div class="line">package. qwtconfig.pri is also read by qwt.prf, when building your</div>
<div class="line">application. So the first step is to edit the *.pri files to adjust </div>
<div class="line">them to your needs.</div>
<div class="line"></div>
<div class="line">The subdirs <span class="keyword">template</span> of qmake is known to be buggy when <span class="keyword">using</span> spaces </div>
<div class="line">in path names. So better don<span class="stringliteral">&#39;t build Qwt below a path name with spaces. </span></div>
<div class="line"><span class="stringliteral">( Otherwise you might have to run qmake in all subdirs manually ).</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Documentation</span></div>
<div class="line"><span class="stringliteral">==========================</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Qwt includes a class documentation, that is available in various formats:</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">- Html files</span></div>
<div class="line"><span class="stringliteral">- PDF document </span></div>
<div class="line"><span class="stringliteral">- Qt Compressed Help (*.qch ) for the Qt assistant or creator. </span></div>
<div class="line"><span class="stringliteral">  You can load it &quot;Edit Preferences&quot; -&gt; &quot;Documentation&quot; -&gt; &quot;Add...&quot;</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Building Qwt</span></div>
<div class="line"><span class="stringliteral">==========================</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">The easiest way to build Qwt is from the command line - but when you</span></div>
<div class="line"><span class="stringliteral">insist on using an IDE don&#39;</span>t forget the <span class="stringliteral">&quot;make install&quot;</span> step.</div>
<div class="line"></div>
<div class="line">A) Unix </div>
<div class="line">--------</div>
<div class="line"></div>
<div class="line">qmake qwt.pro</div>
<div class="line">make</div>
<div class="line">make install</div>
<div class="line"></div>
<div class="line">If you have installed a shared library it<span class="stringliteral">&#39;s path has to be known to </span></div>
<div class="line"><span class="stringliteral">the run-time linker of your operating system. On Linux systems read</span></div>
<div class="line"><span class="stringliteral">&quot;man ldconfig&quot; ( or google for it ). Another option is to use</span></div>
<div class="line"><span class="stringliteral">the LD_LIBRARY_PATH (on some systems LIBPATH is used instead, on MacOSX</span></div>
<div class="line"><span class="stringliteral">it is called DYLD_LIBRARY_PATH) environment variable.</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">If you only want to check the Qwt examples without installing something,</span></div>
<div class="line"><span class="stringliteral">you can set the LD_LIBRARY_PATH to the lib directory </span></div>
<div class="line"><span class="stringliteral">of your local build. </span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">If you didn&#39;</span>t enable autobuilding of the examples in qwtconfig.pri</div>
<div class="line">you have to build the examples <span class="keyword">this</span> way:</div>
<div class="line"></div>
<div class="line">cd examples</div>
<div class="line">qmake examples.pro</div>
<div class="line">make</div>
<div class="line"></div>
<div class="line"></div>
<div class="line">B) Win32/MSVC </div>
<div class="line">--------</div>
<div class="line"></div>
<div class="line">Check that your Qt version has been built with MSVC - not with MinGW !</div>
<div class="line"></div>
<div class="line">Please read the qmake documentation how to convert </div>
<div class="line">your *.pro files into your development environment.</div>
<div class="line"></div>
<div class="line">F.e MSVC with nmake:</div>
<div class="line">qmake qwt.pro</div>
<div class="line">nmake</div>
<div class="line">nmake install</div>
<div class="line"></div>
<div class="line">If you didn<span class="stringliteral">&#39;t enable autobuilding of the examples in qwtconfig.pri</span></div>
<div class="line"><span class="stringliteral">you have to build the examples this way:</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">cd examples</span></div>
<div class="line"><span class="stringliteral">qmake examples.pro</span></div>
<div class="line"><span class="stringliteral">nmake</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Windows doesn&#39;</span>t like mixing of debug and release binaries. Most</div>
<div class="line">of the problems with <span class="keyword">using</span> the Qwt designer plugin are because</div>
<div class="line">of trying to load a Qwt debug library into a designer release </div>
<div class="line">executable.</div>
<div class="line"></div>
<div class="line">It<span class="stringliteral">&#39;s not possible to load a plugin, that has been built with MinGW</span></div>
<div class="line"><span class="stringliteral">into a Qt Designer/Creator, that has been built with MSVC ( and v.v ).</span></div>
<div class="line"><span class="stringliteral">This is a common reason for problems, when working with prebuild</span></div>
<div class="line"><span class="stringliteral">binaries of the Qt Creator.</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">C) Win32/MinGW </span></div>
<div class="line"><span class="stringliteral">--------</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Check that your Qt version has been built with MinGW - not with MSVC !</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Start a Shell, where Qt4 is initialized. ( F.e. with</span></div>
<div class="line"><span class="stringliteral">&quot;Programs-&gt;Qt by Trolltech ...-&gt;Qt 4.x.x Command Prompt&quot; ).</span></div>
<div class="line"><span class="stringliteral">Check if you can execute &quot;make&quot; or something like &quot;mingw32-make&quot;.</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">qmake qwt.pro</span></div>
<div class="line"><span class="stringliteral">make</span></div>
<div class="line"><span class="stringliteral">make install</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">If you didn&#39;</span>t enable autobuilding of the examples in qwtconfig.pri</div>
<div class="line">you have to build the examples <span class="keyword">this</span> way:</div>
<div class="line"></div>
<div class="line">cd examples</div>
<div class="line">qmake examples.pro</div>
<div class="line">make</div>
<div class="line"></div>
<div class="line">Windows doesn<span class="stringliteral">&#39;t like mixing of debug and release binaries. Most</span></div>
<div class="line"><span class="stringliteral">of the problems with using the Qwt designer plugin are because</span></div>
<div class="line"><span class="stringliteral">of trying to load a Qwt debug library into a designer release </span></div>
<div class="line"><span class="stringliteral">executable.</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">Don&#39;</span>t forget to tell qmake where to find qwt.prf:</div>
<div class="line">qmake -<span class="keyword">set</span> QMAKEFEATURES ...</div>
<div class="line"></div>
<div class="line">D) MacOSX</div>
<div class="line">--------</div>
<div class="line"></div>
<div class="line">Well, the Mac is only another Unix system. So read the instructions in A).</div>
<div class="line"></div>
<div class="line">In the recent Qt4 releases the <span class="keywordflow">default</span> target of qmake is to generate</div>
<div class="line">XCode project files instead of makefiles. So you might need to <span class="keywordflow">do</span> the</div>
<div class="line">following:</div>
<div class="line"></div>
<div class="line">qmake -spec macx-g++ qwt.pro</div>
<div class="line">...</div>
<div class="line"></div>
<div class="line">E) Qt Embedded</div>
<div class="line">--------</div>
<div class="line"></div>
<div class="line">I only tested Qwt with Qt Embedded in qvfb (Virtual Framebuffer Devivce)</div>
<div class="line">Emulator on my Linux box. To build Qwt <span class="keywordflow">for</span> the emulator was as simple as </div>
<div class="line"><span class="keywordflow">for</span> a regular Unix build.</div>
<div class="line"></div>
<div class="line">F) Symbian</div>
<div class="line">--------</div>
<div class="line"></div>
<div class="line">I never tried <span class="keyword">this</span> platform myself.</div>
<div class="line"></div>
<div class="line">Using Qwt</div>
<div class="line">===========</div>
<div class="line"></div>
<div class="line">For building a Qwt application with qmake use the Qwt configuration features</div>
<div class="line">file, that has been installed by <span class="stringliteral">&quot;make install&quot;</span>. When qmake is able to find </div>
<div class="line">it ( https:<span class="comment">//qt-project.org/doc/qt-4.8/qmake-advanced-usage.html#adding-new-configuration-features )</span></div>
<div class="line">you can simply add <span class="stringliteral">&quot;CONFIG += qwt&quot;</span> to your application project file.</div>
<div class="line"></div>
<div class="line">If you don<span class="stringliteral">&#39;t use qmake you have to add the include path to find the Qwt </span></div>
<div class="line"><span class="stringliteral">headers to your compiler flags and the Qwt library to your linker list.</span></div>
<div class="line"><span class="stringliteral">Don&#39;</span>t forget to add QWT_DLL to the compiler flags, when you work with a </div>
<div class="line">Qwt-DLLs on Windows.</div>
<div class="line"></div>
<div class="line">For <span class="keyword">using</span> the designer plugin you have to configure the Qt designer/creator </div>
<div class="line">where to look <span class="keywordflow">for</span> plugins. This can be done by setting the QT_PLUGIN_PATH or</div>
<div class="line"><span class="keyword">using</span> a qt.conf file ( see http:<span class="comment">//doc.qt.nokia.com/4.7/deployment-plugins.html ).</span></div>
<div class="line">Beside the plugin the Qwt library itsself also needs to be known to the Designer/Creator</div>
<div class="line">( see LD_LIBRARY_PATH, PATH ... above ).</div>
<div class="line"></div>
<div class="line">Good luck !</div>
</div><!-- fragment --> </div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>