Я новичок в GNU/Linux (Lubuntu 11.10) и пытаюсь скомпилировать некоторый исходный код C из книги программирования Linux с 2001 года. Я несколько смущен о включении заголовочных файлов в GNU/Linux.# включение некоторых файлов заголовков в старый источник C (page.h и др.) На Ubuntu
Программа «simplefb.c» из книги Программирование Linux-игр от John R. Hall et al (2001). Я прыгнул прямо в главу на консольном программировании с помощью фреймбуфера, но сразу же ударил эту немедленную защелку. просто хотелось бы сделать несколько простых не-GUI (и не'text ') игры в C на Linux для удовольствия ...
Проблема, кажется, с несколько директив #includes в заголовочные файлы:
#include <asm/page.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <linux/fb.h>
Попытка код, как указано в книге:
> куб.см the_file.c
дает
фатальную ошибку: ASM/page.h: нет такого файла или каталога компиляция не завершается.
И действительно, кажется, что эти файлы живут где-то еще, так что я пытался о внесении изменений первоначально только первый #include к (ныне?):
#include </usr/src/linux-headers-3.0.0-17-generic/include/asm-generic/page.h>
я выбрал именно эту папку заголовков (есть несколько в/USR/SRC /), так как
> uname -r
3.0.0-17-родовой
с поправками #include, I-й ан получают ошибку компиляции:
В файле включенной из the_file.c
/usr/src/linux-headers-3.0.0-17-generic/include/asm-generic/page.h:96:38 : фатальная ошибка: asm-
generic/memory_model.h: Нет такого файла или каталога
компиляция завершена.
И глядя в этом page.h, он определяет включает ASM-родовое/memory_model.h (удалено hashs и «метка», как эту линию не будут отображаться здесь должным образом в противном случае) , но этот файл существует в той же папке.
Итак, прежде чем я пойду на дикий гусиный преследователь (сначала удалив asm-generic/bit из предыдущего, включив и поместив его в кавычки), какова правильная процедура, которую я должен использовать здесь? Есть ли очевидный правильный способ получить исходный код книги для компиляции?
спасибо. Будем очень благодарны за любую помощь.
Приложение: Я загрузил образец кода из вашей книги здесь: http://nostarch.com/download/plg-listings-08-07-2001.tar.gz Вы абсолютно хотите заголовки пользовательского пространства (например,/usr /include/linux/fb.h), а не заголовки ядра Linux! – paulsm4