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

C++ Discussion :

cannot find -ltiff


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 71
    Par défaut cannot find -ltiff
    Bonjour,
    Dans le cadre d'un stage en entreprise de traitement d'images, on me demande à ce stade de mon travail de convertir des images binaires en TIFF, et ce par le biais d'un fichier de code déjà fourni mais qu'il faut compiler. Seulement, à la compilation, j'obtiens l'erreur suivante que je ne comprends absolument pas, et malgré quelques recherches sur internet, ça reste assez flou, si quelqu'un peut m'éclairer !

    J'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    modis@modis:~/Desktop/b2tf$ make
    gcc -O2  -Wall  b2tf_strip.o GeographicTypes.o jpeg_strip.o pal_strip.o -lm -ltiff -lgeotiff -L/usr/lib -I/home/userglov/include  -o b2tf_strip
    /usr/bin/ld: cannot find -ltiff
    collect2: ld returned 1 exit status
    Merci d'avance !

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonjour,
    -lbidule est l'option du compilateur gcc ou g++ pour lui dire "utilise la bibliothèque libbidule".
    Il faut qu'elle soit installée dans une zone connue de ld (le linker)

    Comme je vois que tu as utilisé make, il faut vérifier ton makefile.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 71
    Par défaut
    Merci pour ta réponse !

    Je viens de jeter un coup d'oeil au Makefile et je vois ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS=   -lm -ltiff -lgeotiff -L/usr/lib -I/home/userglov/include
    évidemment, je dois les modifier car cela ne correspond pas à la disposition de mes dossiers et localisations des librairies, mais peux-tu m'éclairer sur la différence entre le -L et le -I à quoi il servent?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Hello

    Vérifier le Makefile oui, mais d'abord vérifier que la lib en question est installée sur ta machine de travail. Tu as posté plus vite, je suppose du coup que tu as bien la lib quelque part.

    -L sert à indiquer ou chercher les binaires compilés des bibliothèques
    -I sert à indiquer ou trouver les headers (pour pouvoir les utiliser avec #include)

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    éventuellement, il faudrait rajouter -L/usr/local/lib, si libtiff a été installée manuellement.

    -I indique au compilateur un dossier dans lequel chercher les chemins demandés via #include "".

    Je pense que c'est un bon moment pour t'intéresser à la chaine de compilation GCC (GNU Compiler Collection).
    Ainsi qu'au processus de compilation d'un programme C++

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 71
    Par défaut
    Merci pour vos réponses,

    J'ai modifié la ligne dans le Makefile pour la faire correspondre aux dossiers de librairie et d'includes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     LIBS=   -lm -ltiff -lgeotiff -L/modis/OSS-MODIS/chaine_oss/warpgrid/lib -I/modis/OSS-MODIS/chaine_oss/warpgrid/include
    sachant que dans /lib j'ai un fichier libtiff.so
    Mais en vain, j'ai toujours la même erreur qui s'affiche ...

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Sachant que -L et -I acceptent des chemins relatifs.

    Je pense d'ailleurs que ls /modis/OSS-MODIS/chaine_oss/warpgrid/lib échouera.
    En effet, ton chemin est relatif.

    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     LIBS=   -lm -ltiff -lgeotiff -Lmodis/OSS-MODIS/chaine_oss/warpgrid/lib -Imodis/OSS-MODIS/chaine_oss/warpgrid/include

Discussions similaires

  1. [STRUTS] [Debutant] Cannot find message resources...
    Par grizzz dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/05/2011, 16h08
  2. /usr/bin/ld: cannot find -lX11
    Par Michaël dans le forum Administration système
    Réponses: 6
    Dernier message: 10/03/2008, 16h13
  3. [JSF] mon premier JSF:Cannot find FacesContext
    Par anitshka dans le forum JSF
    Réponses: 15
    Dernier message: 24/08/2007, 18h19
  4. Message d'erreur: Cannot find file ID 2
    Par glanumf dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/05/2007, 16h08
  5. [Tomcat 4.1][Struts] Cannot find global ActionForward....
    Par otminou dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 13/09/2004, 12h04

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