Compilation avec librairies en C : Question de base

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonsoir!

J'ai un petit soucis pour un projet en C
J'arrive à créer deux librairies libft.a et libtest.a, ainsi qu'un TEST_main.c utilisant ces deux librairies, il y a deux headers dans le TEST_main.c, l'un se trouve dans la racine du projet où on se trouve pendant la compilation et l'autre se trouve dans un dossier test.

voici le moment où mon Makefile bloque :

gcc -Wall -Werror -Wextra ./test/TEST_main.c -o test_bin -I./ ./test/ \
-L./ -lft -ltest
ld: can't map file, errno=22 for architecture x86_64
collect2: ld returned 1 exit status
make: *** [test_bin] Error 1

Je ne comprends tout simplement pas l'erreur :S Je pense que j'ai mal écrit ma commande mais je suis pas vraiment capable de trouver l'erreur actuellement. Une bonne âme aurait-elle une suggestion ou un début d'explication à partager? merci d'avance!

1 réponse

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut orinym,

    ./test/

    cela ne serait pas plutôt :

    -I./test/


    Dal
    0
    1. Utilisateur anonyme
       
      Oui, ça semble résoudre le problème, on peut donc utiliser plusieurs fois la même option?
      0
    2. Utilisateur anonyme
       
      En tout cas merci :) J'ignorais qu'il fallait écrire comme ça.
      0
    3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options

      -Idir
      Add the directory dir to the head of the list of directories to be searched for header files.

      l'option
      -I
      permet d'ajouter le répertoire mentionné à la suite dans la liste des répertoires dans lesquels le compilateur recherchera des fichiers .h.

      Si tu dois inclure un autre répertoire, tu utilises de nouveau
      -I
      , pour ajouter l'autre répertoire dans la liste de recherche.


      Dal
      0
    4. Utilisateur anonyme
       
      Entendu, c'est une nuance importante qu'il est sans doute bon que je connaisse au cas où elle s'appliquerait autre-part. Grand merci!
      0