Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Tutorial: Using prelink

Introduction

A significant portion of application startup time is spent in the dynamic linker performing relocations and resolving symbols from shared libraries. This process is performed every time a program loads. Performing this process ahead-of-time and caching the results, such that it does not need to be done on program load is known as prelinking. For an in depth description of the prelinking process see http://people.redhat.com/jakub/prelink/prelink.pdf.

Due to the way prelinking works it is incompatible with any per process address space randomization security features of the Linux kernel. You should be aware of the security implications this has on your device. Because of this, prelink can be configured to randomly assign the base address at which shared libraries are loaded into a processes address space.

This tutorial describes how to use prelink to optimize programs and shared libraries on an embedded ARM device.

Prerequisites

This tutorial assumes that

  • You can successfully build and run Qt Extended on your device.
  • You have the prelink binaries compiled for your device.
  • All file systems containing Qt Extended and system libraries are writable.

Process

The process of preparing your device for prelinking is as follows:

  1. Build Qt Extended using the -fPIC compiler flag.
  2. Install Qt Extended onto your device.
  3. Copy prelink and prelink-rtld binaries to /usr/bin on your device.
  4. Copy prelink.conf to /etc on your device.

Once the above steps have been completed run the following commands on your device to prelink all programs and libraries:

    export LD_LIBRARY_PATH=/opt/Qtopia/lib:/lib:/usr/lib
    prelink -amR

This will take some time to run so be patient! Once it has completed check that /etc/prelink.cache exists and contains information.

The prelink command should be rerun each time programs and shared libraries (including plug-ins) are updated.

To undo the prelinking, run the command:

    prelink -au

Example Configuration File

The following is an example prelink.conf file which is appropriate for most system:

    # This config file contains a list of directories both with binaries
    # and libraries prelink should consider by default.
    # If a directory name is prefixed with `-l ', the directory hierarchy
    # will be walked as long as filesystem boundaries are not crossed.
    # If a directory name is prefixed with `-h ', symbolic links in a
    # directory hierarchy are followed.

    # System libraries
    -l /lib
    -l /usr/lib
    -l /usr/local/lib

    # System binaries
    -l /bin
    -l /usr/bin
    -l /usr/local/bin
    -l /sbin
    -l /usr/sbin
    -l /usr/local/sbin

    # Qt Extended
    -l /opt/Qtopia/lib
    -l /opt/Qtopia/bin
    -l /opt/Qtopia/plugins
    -l /opt/Qtopia/qt_plugins

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 94
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes ? Manquent-ils de pouvoir de négociation ? 42
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 8
Page suivante

Le Qt Labs au hasard

Logo

Utiliser OpenCL avec Qt

Les Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt qtextended4.4
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web