" Causes "Erreur: ASM / IO.H: Aucun fichier ou répertoire de ce type" - Retrouvez les réponses et les commentaires concernant cette question" />
8
votes

"#include " Causes "Erreur: ASM / IO.H: Aucun fichier ou répertoire de ce type"

J'utilise Gentoo et j'essaie de compiler un programme pour contrôler les bits sur le port parallèle. Il a cette ligne près du sommet: xxx

et lorsque j'essaie d'utiliser GCC dessus, il produit cette sortie:

port.c: 4: 20: ERREUR: ASM / IO.H: Aucun fichier ou répertoire de ce type

"localiser asm / io.h" yeililds (entre autres):

/usr/src/linux-2.6.32-gentoo/arch/x86/include/asm/io.h

Donc, j'ai donc le fichier d'en-tête, mais cela ne le trouve pas? Pourquoi cela ne fonctionne-t-il pas?


1 commentaires

Ce n'est pas dans votre défaut include la voie?


5 Réponses :


0
votes

Vous devrez peut-être ajouter le chemin. Sur la ligne de commande GCC:

gcc -I/usr/src/linux-2.6.32-gentoo/arch/x86/include ...


0 commentaires

0
votes

Essayez xxx

où XYZ est le fichier que vous essayez de compiler.

Ceci indique au compilateur où chercher des fichiers incluant. Vous pouvez avoir de nombreuses options -i si vos fichiers incluent sont dans différents emplacements, comme celui-ci xxx


7 commentaires

Merci, cela a résolu ce problème. Le seul problème est maintenant que ce fichier tire dans un groupe d'autres fichiers, dont l'un (ASM-generic / ioctls.h) n'existe tout simplement pas sur mon lecteur dard ... La partie triste est celle / usr / include / ASM-generic / ioctl.h est présent. Typo en en-tête peut-être?


Voir ma réponse. Ressemble à un code très ancien et essayant de le faire travailler sur un noyau de Linux moderne pourrait avoir beaucoup de problèmes. Puis-je savoir quelle bibliothèque / code c'est?


C'est PARCON, de bigasterisk.com/projects/parallel . Bien qu'il y ait un binaire sur le site, je ne veux pas utiliser cela parce que je veux pouvoir personnaliser le programme pour répondre à mes besoins. Quoi qu'il en soit, j'ai ajouté un symbole symbolique de ioctls.h à ioctl.h in / usr / include / ASM-generic, plus A -I / USR / SRC / Linux / Inclure le commutateur sur la ligne de commande, et que je reçois maintenant une bande d'erreurs. Dans io.h concernant les erreurs de syntaxe et les variables non définies. Peut-être que le Symlink n'était pas au bon fichier?


Comme je l'ai dit dans ma réponse, essayez de remplacer asm / io.h avec sys / io.h . homebrewtechnology.blogspot.com/2009/03/ ... semble suggérer que cela fonctionne.


En outre, vous ne pouvez pas simplement relier des fichiers désignés comme celui-ci et supposez qu'il fonctionnera :-).


Changer à SYS / IO.H a fonctionné super sans autre piratage. Merci!


Je ne reçois pas tous ceux qui "merci" et toujours 0 points à la réponse de la réponse.



0
votes

Ajouter -I / USR / SRC / Linux-2.6.32-Gentoo / Arch / X86 / Inclure à votre ligne de commande Compiler.


0 commentaires

10
votes

Je ne sais pas si vous êtes l'auteur du programme ou que vous essayez simplement de compiler un programme que vous avez reçu de quelqu'un, mais ressemble à #include doit être remplacé par #include . Voir les résultats de Cette recherche Google pour plus informations.


0 commentaires

4
votes

jamais Utilisez le code / les en-têtes dans / usr / include / asm . Utilisez les en-têtes dans / usr / include / sys à la place.

Ce que vous faites en utilisant / usr / include / asm / construit votre code contre une révision spécifique des en-têtes du noyau. Ceci est sujet à la rupture lorsque les en-têtes du noyau changent. En liant à l'autre emplacement, vous trouverez un lien vers une forme plus stable des en-têtes de Glibc, qui fera référence aux en-têtes du noyau au besoin. C'est pourquoi il y a un grand complexe de #Ifdef ... #endif lignes poivré toutes dans les en-têtes.

Faire confiance à moi, tous les outils dont vous avez besoin pour un bit-fileding avec les ports parallèles seront dans /usr/includu/sys/io.h , car probablement tout ce que vous allez utiliser sont directs readb () et sommationb () appels dans le périphérique / dev / lpx


0 commentaires