"#include "причины" Ошибка: asm / io.ч: нет такого файла или каталога"
Я использую gentoo и пытаюсь скомпилировать программу для управления битами на параллельном порту. У него есть эта строка в верхней части:
#include <asm/io.h>
и когда я пытаюсь использовать gcc на нем, он производит этот вывод:
порт.c: 4: 20: ошибка: asm / io.ч: нет такого файла или каталога
" найдите asm / io.h " yeilds (среди прочего):
в/usr/src/и в Linux-2.6.32-Gentoo в/арки/х86/включить/АСМ/Ио.h
Так Я есть файл заголовка, но он его не находит? Почему это не работает?
5 ответов
Я не уверен, если вы являетесь автором программы или вы просто пытаетесь скомпилировать программу, которую вы получили от кого-то, но выглядит так: #include <asm/io.h>
следует заменить на #include <sys/io.h>
. Смотрите результаты этот поиск google для получения дополнительной информации.
никогда используйте код / заголовки в /usr/include/asm
. Используйте заголовки в /usr/include/sys
вместо.
что вы делаете с помощью /usr/include/asm/
создает ваш код против определенной ревизии заголовков ядра. Это может быть нарушено при изменении заголовков ядра. Связав в другом месте, вы ссылку на более стабильную форму заголовков в glibc, которая будет ссылаться на заголовки ядра по мере необходимости. Вот почему существует большой комплекс #ifdef ... #endif
строки засыпали все в заголовки.
поверьте мне, все инструменты, необходимые для бит-возиться с параллельными портами будет в /usr/include/sys/io.h
, так как, вероятно, все, что вы собираетесь использовать, это direct readb()
и writeb()
звонки на соответствующий /dev/lpX
устройства.
возможно, Вам потребуется добавить путь. В командной строке gcc:
gcc -I/usr/src/linux-2.6.32-gentoo/arch/x86/include ...
попробовать
gcc -I/usr/src/linux-2.6.32-gentoo/arch/x86/include xyx
где XYZ-это файл, который вы пытаетесь скомпилировать.
это указывает компилятору, где искать файлы include. У вас может быть много вариантов I, Если ваши файлы include находятся в разных местах, например
gcc -I/usr/src/linux-2.6.32-gentoo/arch/x86/include -I/usr/src/some/Dir xyx
добавить -я в/usr/src/и в Linux-2.6.32-Gentoo в/арки/х86/включать в свои компиляции из командной строки.