4 votes

Aide à la localisation de linux/version.h

J'essaie de réparer un ancien programme. Les problèmes que j'ai rencontrés précédemment peuvent être trouvés à l'adresse suivante Modversions.h manquantes

Quand je make le programme me donne l'erreur suivante,

kaodv-mod.c:22:27: fatal error: linux/version.h: No such file or directory
compilation terminated.

Alors j'ai couru

find / -name version.h

qui renvoie

/opt/VBoxGuestAdditions-4.3.2/src/vboxguest-4.3.2/vboxguest/include/VBox/version.h
/usr/include/linux/dvb/version.h
/usr/include/linux/version.h
/usr/src/linux-headers-3.8.0-29-generic/include/config/arch/want/ipc/parse/version.h
/usr/src/linux-headers-3.8.0-29-generic/include/generated/uapi/linux/version.h
/usr/src/linux-headers-3.8.0-29/include/uapi/linux/dvb/version.h
/usr/src/linux-headers-3.8.0-29/include/xen/interface/version.h

Cela prouve clairement que linux/version.h est présent

Afin de résoudre ce problème, dois-je changer

#include<linux/version.h>

en

#include</usr/include/linux/version.h>

Ou est-il possible d'apporter des modifications au Makefile

P.S : Makefile

8voto

shantanu Points 7751

Vous devez d'abord installer kernel-headers

sudo apt-get install linux-headers-$(uname -r)

Si cela ne fonctionne pas, essayez aussi ceci

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

Modifié pour types.h :

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/uapi/asm-generic/types.h /lib/modules/$(uname -r)/build/include/uapi/linux/types.h

1voto

Clyde Points 3881

Avec apt-file, vous pouvez trouver n'importe quel fichier fourni par Ubuntu :

$ apt-file search linux/version.h
gcc-arm-linux-androideabi: /usr/arm-linux-androideabi/include/linux/version.h
linux-headers-3.11.0-11-lowlatency: /usr/src/linux-headers-3.11.0-11-lowlatency/include/generated/uapi/linux/version.h
linux-headers-3.11.0-12-generic: /usr/src/linux-headers-3.11.0-12-generic/include/generated/uapi/linux/version.h
linux-headers-3.4.0-1-goldfish: /usr/src/linux-headers-3.4.0-1-goldfish/include/linux/version.h
linux-libc-dev: /usr/include/linux/version.h
linux-libc-dev-arm64-cross: /usr/aarch64-linux-gnu/include/linux/version.h
linux-libc-dev-armel-cross: /usr/arm-linux-gnueabi/include/linux/version.h
linux-libc-dev-armhf-cross: /usr/arm-linux-gnueabihf/include/linux/version.h
linux-libc-dev-powerpc-cross: /usr/powerpc-linux-gnu/include/linux/version.h
ruby1.8-dev: /usr/lib/ruby/1.8/i686-linux/version.h

Dans cette liste, linux-libc-dev semble être le candidat le plus prometteur.

1voto

Jason H Points 111

Il n'y a pas include/generated/uapi/linux/version.h dans l'arbre du code source à partir du noyau linux 4.14 ;

Voici une façon de le générer sous Ubuntu

  1. Installer les en-têtes linux

    sudo apt install linux-headers-`uname -r`
  2. Allez dans le répertoire des en-têtes de linux

    cd /usr/src/linux-headers-`uname -r`
  3. Générer version.h

    sudo make include/generated/uapi/linux/version.h
  4. Créer un lien symbolique pour générer un fichier

    sudo ln -s $PWD/include/generated/uapi/linux/version.h include/version.h

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X