" Causes "Erreur: ASM / IO.H: Aucun fichier ou répertoire de ce type" - Retrouvez les réponses et les commentaires concernant cette question" />
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: et lorsque j'essaie d'utiliser GCC dessus, il produit cette sortie: P> port.c: 4: 20: ERREUR: ASM / IO.H: Aucun fichier ou répertoire de ce type p>
blockQuote> "localiser asm / io.h" yeililds (entre autres): P> /usr/src/linux-2.6.32-gentoo/arch/x86/include/asm/io.h p>
blockQuote> Donc, j'ai donc le fichier d'en-tête, mais cela ne le trouve pas?
Pourquoi cela ne fonctionne-t-il pas? P> p>
5 Réponses :
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 ...
Essayez où XYZ est le fichier que vous essayez de compiler. p> 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 p>
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 code> avec
sys / io.h code>. 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.
Ajouter -I / USR / SRC / Linux-2.6.32-Gentoo / Arch / X86 / Inclure à votre ligne de commande Compiler. P>
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
#include
Ce que vous faites en utilisant Faire confiance à moi, tous les outils dont vous avez besoin pour un bit-fileding avec les ports parallèles seront dans / usr / include / asm code>. Utilisez les en-têtes dans
/ usr / include / sys code> à la place. P>
/ usr / include / asm / code> 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 code> lignes poivré toutes dans les en-têtes. P>
/usr/includu/sys/io.h code>, car probablement tout ce que vous allez utiliser sont directs
readb () code> et
sommationb () code> appels dans le périphérique
/ dev / lpx lpx p>
Ce n'est pas dans votre défaut include la voie?