IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

édition de liens lors de la compilation en ligne de commande


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 22
    Points
    22
    Par défaut édition de liens lors de la compilation en ligne de commande
    Bonjour à tous,
    j'avais installé la bibliothèque OpenCV sur mon laptop via le gestionnaire
    Synaptic et pour compiler mon programme en ligne de commande, je faisais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o program program.c -lcv -lhighgui
    et tout marchait bien. Mais après pour une autre raison j'ai installé cette bibliothèque manuellement(CMake, ...). Et à présent pour compiler, je suis obligé d'écrire les chemins complets des include et librairie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o program program.c -I/usr/local/include/opencv -L/usr/local/lib \ -lcv -lhighgui
    J'aimerais savoir comment faire pour compiler de la première façon sans
    écrire tous ces chemins. Je me suis dis qu'il faut ajouter ce chemin à une variable
    d'environnement, je l'ai fais selon les docs rencontrés sur le net avec la variable
    PKG_CONFIG_PATH et voilà la compilation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o program program.c `pkg-config opencv --cflags --libs`
    Et ce n'est toujours pas satisfaisant pour moi!
    En fait je veux connaître ce que le gestionnaire Synaptic a fait pour que je puisse compiler comme avant.
    Merci d'avance.
    Cordialement.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Synaptic n'a rien fait de particulier. Simplement, quand tu installes un package "officiel" avec synaptic (ou autre), il est installé dans les répertoires standards : /usr/lib, usr/include, ... Ce qui fait que le linker sait où les trouver. Par contre quand tu compiles et installes à la main avec ./configrure && make && make install, tout est installé par défaut sous /usr/local, qui n'est pas l'emplacement "normal". Donc tu es obligé de dire à ld où trouver les fichiers.

    Par contre il est possible, même pour une install à la main, de provoquer l'installation dans les répertoires standard. Pour celà tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./configure --prefix=/usr

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Partie du message envoyée par amateur87 :
    ...et tout marchait bien. Mais après pour une autre raison j'ai installé cette bibliothèque manuellement(CMake, ...). Et à présent pour compiler, je suis obligé d'écrire les chemins complets des include et librairie:

    g++ -o program program.c -I/usr/local/include/opencv -L/usr/local/lib \ -lcv -lhighgui

    sinon ,tu peux écrire ces lignes dans un fichier .sh ...que tu executeras avec le programme du même nom .

    exemple.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/usr/bin/sh
    g++ -o program program.c -I/usr/local/include/opencv -L/usr/local/lib \ -lcv -lhighgui ;
    Terminal ou xterm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ ls
      exemple.sh
    $ sh exemple.sh

Discussions similaires

  1. [WebForms][CR] Compilation en ligne de commande et etat Crystal
    Par David.V dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 02/02/2009, 00h58
  2. Réponses: 7
    Dernier message: 29/06/2006, 09h54
  3. Compilation en ligne de commande
    Par bbdanix dans le forum NetBeans
    Réponses: 1
    Dernier message: 11/06/2006, 12h35
  4. compiler en ligne de commandes avec dev-cpp
    Par yashiro dans le forum Dev-C++
    Réponses: 8
    Dernier message: 30/03/2006, 20h14
  5. Compilation par ligne de commande
    Par Dupont Lionel dans le forum MFC
    Réponses: 2
    Dernier message: 21/10/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo