Pb compilation: /usr/bin/ld: cannot find -l..

Utilisateur anonyme -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, J'essaie de compiler avec une bibliothèque que j'ai installée, et qui s'appelle "libTableauNoir".
seulement voilà: lorsque j'utilise gcc voilà ce que cela me sort:

Mon-PC:~/.../lib_tableau_noir_sdl$ gcc -lTableauNoir essai.c -o essai
/usr/bin/ld: cannot find -lTableauNoir
collect2: ld a retourné 1 code d'état d'exécution


J'aimerais comprendre ce qui se passe, et si possible avoir une solution :S

merci d'avance

3 réponses

Résumé de la discussion

Le souci principal est l'erreur du linker qui ne trouve pas la bibliothèque libTableauNoir lors de la compilation avec -lTableauNoir sous Linux et induit un code d'état 1. Plusieurs solutions proposées incluent la mise à jour du cache des bibliothèques via ldconfig, l'indication du chemin avec -L et le placement correct des fichiers .so. D'autres approches consistent à localiser la bibliothèque avec find ou locate et à vérifier les dépendances avec ldd pour adapter LD_LIBRARY_PATH. Enfin, la distinction entre bibliothèques dynamiques et statiques est rappelée, précisant que -static implique intégration dans l'exécutable et que la recherche peut nécessiter l'ajout du chemin d'installation.

Bobot (l'IA à votre service)
  1. SwarlZ
     
    Bonjour a tous,

    j'ai exactement le meme probleme, la meme erreur sauf qu'apres avoir suivis vos conseils ca ne fonctionne toujours pas.

    Ma ligne de compil :

    g++ -o test.exe main.o -L. -lfunc.so

    (ma lib s'appelle libfunc.so)

    J'ai teste le sudo ldconfig, ca n'a rien donne :(

    En tous cas, merci d'avance !
    425
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      libfunc.so est donc dans .
      essayer -lfunc
      1
    2. SwarlZ
       
      Super ca a l'air de fonctionner. Je n etais pas du tout au courant de se mecanisme !
      0