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 :

Erreur de compilation dans les fichier d'en-tête


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Points : 39
    Points
    39
    Par défaut Erreur de compilation dans les fichier d'en-tête
    Bonjour,

    Je suis actuellement en train de lire un livre sur la programmation de pilotes sur linux.
    Au début de ce livre un exemple de code de module nous est donné.

    J'ai donc essayé de le compiler mais sans succès. Le compilateur me dit qu'il trouve des erreurs dans les fichiers d'en-tête que j'utilise, hors ces fichiers proviennent des sources du noyau. Je n'arrive pas à comprendre comment il pourrait y avoir des erreurs dans ces fichiers.

    Le code que j'essaye de compiler est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <linux/init.h>
    #include <linux/module.h>
    MODULE_LICENSE("Dual BSD/GPL");
    static int hello_init(void)
    {
        printk(KERN_ALERT "Hello, world\n");
        return 0;
    }
    static void hello_exit(void)
    {
        printk(KERN_ALERT "Goodbye, cruel world\n");
    }
    module_init(hello_init);
    module_exit(hello_exit);
    La ligne de commande que j'utilise pour le compiler est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -I /usr/src/linux-2.6.26.2/include hello_world.c -o hello_world
    Est-ce que quelqu'un saurait d'ou vient le problème ?

  2. #2
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    Makefile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    obj-m := hello_world.o
    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
     
    modules:
    	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
     
    clean:
    	rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions
     
    .PHONY: modules clean
    __________
    "Any sufficiently advanced technology is indistinguishable from magic" Arthur C. Clarke

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Tous d'abord merci pour la réponse.
    Je l'ai testé mais j'ai encore des erreurs.

    La première erreur est que le répertoire build n'existe pas à l'adresse indiquée.
    Je l'ai créé et ai réessayé.

    J'ai alors eu une autre erreur me disant qu'il n'y a pas de règles pour fabriquer la cible "modules".

    Est-ce que quelqu'un saurait où est le problème ?

    Je ne sais pas comment fonctionne un makefile je vais faire des recherches de ce côté-là, toutefois si quelqu'un connait un bon cours sur le sujet qu'il n'hésite pas à me donner le lien.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Personne n'a une idée ?

    Peut-être quelqu'un pourra t-il répondre à cette question.
    Pourquoi n'ais je pas de répertoire build/ dans /lib/modules/2.6.26-2-686/ ?

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par belgariel Voir le message
    Personne n'a une idée ?

    Peut-être quelqu'un pourra t-il répondre à cette question.
    Pourquoi n'ais je pas de répertoire build/ dans /lib/modules/2.6.26-2-686/ ?
    A ce niveau-là, il est nécessaire de connaitre ta distrib. Mais si t'es sous Debian (comme moi), alors il te faut installer les linux headers sinon tu ne les auras pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt-get install linux-headers-$(uname -r)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Oui je suis sous debian.

    J'ai trouvé cela un peu après avoir poster le message.

    Merci pour ta réponse.

Discussions similaires

  1. Option de compilation dans les fichiers *.dfm
    Par j.p.mignot dans le forum EDI
    Réponses: 12
    Dernier message: 21/08/2014, 09h30
  2. Réponses: 1
    Dernier message: 04/02/2014, 23h20
  3. Erreur de compilation dans les headers
    Par Invité dans le forum C
    Réponses: 4
    Dernier message: 04/12/2011, 14h45
  4. Réponses: 5
    Dernier message: 21/12/2009, 09h01
  5. [Mingw] Corriger les warning dans les fichiers d'en-tête
    Par gege2061 dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/06/2007, 14h00

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