Problème de compilation / include

Résolu
Flachy Joe Messages postés 2303 Statut Membre -  
Flachy Joe Messages postés 2303 Statut Membre -
Bonjour,
Je tente de compiler un utilitaire sous Debian Lenny, voilà ce que j'obtiens:
user@localhost:~/temp/ncdd-1.2beta1$ make -f Makefile.userspace
gcc -Wall -ggdb  -c ncdd_client.c
ncdd_client.c:53:29: error: asm/alternative.h: Aucun fichier ou répertoire de ce type

Je suis donc parti à la recherche de ce fichier alternative.h et je l'ai trouvé dans
/usr/src/linux-headers-2.6.26-1-common/include/asm-x86/

Comment je peut indiquer à make d'aller chercher dans ce dossier ? Le nom du répertoire "asm/" est codé en dur dans le fichier ncdd_client.c :
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <asm/alternative.h>
#include <asm/atomic.h>
Merci !!

4 réponses

dubcek Messages postés 19021 Statut Contributeur 5 640
 
hello
ajouter un -I <dir> dans les options de gcc

man gcc
-I dir
Add the directory dir to the list of directories to be searched for header files.
0
Flachy Joe Messages postés 2303 Statut Membre 261
 
Merci dubcek
J'ai bien essayé cette option mais ça ne marche pas : le répertoire contenant le fichier header n'est pas asm comme indiqué dans le code mais asm-x86, donc même en ajoutant le répertoire ça ne le trouve pas.
0
dubcek Messages postés 19021 Statut Contributeur 5 640
 
créer asm
sudo "cd /usr/src/linux-headers-2.6.26-1-common/include ; ln -s asm-x86 asm"
0
Flachy Joe Messages postés 2303 Statut Membre 261 > dubcek Messages postés 19021 Statut Contributeur
 
Après la création du lien symbolique :
gcc -Wall -ggdb  -c ncdd_client.c -I /usr/src/linux-headers-2.6.26-1-common/include/
In file included from ncdd_client.c:53:
/usr/src/linux-headers-2.6.26-1-common/include/asm/alternative.h:45: error: expected specifier-qualifier-list before ‘u8’
In file included from /usr/src/linux-headers-2.6.26-1-common/include/asm/atomic.h:4,
                 from ncdd_client.c:54:
/usr/src/linux-headers-2.6.26-1-common/include/asm/atomic_64.h: In function ‘atomic_add_unless’:
/usr/src/linux-headers-2.6.26-1-common/include/asm/atomic_64.h:398: warning: implicit declaration of function ‘unlikely’
/usr/src/linux-headers-2.6.26-1-common/include/asm/atomic_64.h:401: warning: implicit declaration of function ‘likely’
Le fichier est trouvé mais il semble qu'il y a d'autre souci, je me demande dans quel mesure ce que j'essaie de compiler est compatible avec cette version.
0
Flachy Joe Messages postés 2303 Statut Membre 261 > Flachy Joe Messages postés 2303 Statut Membre
 
Salut,
apparemment le fichier est bien dans /usr/include avec Debian Etch (paquet kernel-header), mais pas avec Lenny ou il apparaît dans le dossier sus mentionné (paquet linux-headers-2.6.26-1-common).

https://packages.debian.org/search?lang=fr&suite=etch&arch=i386&searchon=contents&keywords=asm%2Fatomic.h

Est ce que ça veut dire qu'il faut ré-écrire la source pour pouvoir compiler ?
0
Sarah_Linux Messages postés 7 Statut Membre
 
Salut,
essaie avec gcc -Wall -ggdb -c ncdd_client.c ../../usr/src/linux-headers-2.6.26-1-common/include/asm-x86/alternative.h

si ça ne marche pas donne moi l'arborescence exacte du fichier ou tu compile au répertoire asm-x86

cordialement,

Sarah,
0
Flachy Joe Messages postés 2303 Statut Membre 261
 
Il prend peut être en compte le fichier passé en paramètre mais ne trouve pas plus comment inclure celui qui est sensé être dans un sous répertoire asm.
0
Flachy Joe Messages postés 2303 Statut Membre 261
 
Le problème a été résolu par l'auteur de la source, merci pour votre coup de main.
A+
0