[MEGOLDVA]Fordítás - egyszerű példaprogram

 ( tovis | 2015. január 23., péntek - 18:48 )

Megpróbáltam lefordítani a következő, egyszerű példaprogramot:
http://tldp.org/HOWTO/IO-Port-Programming-9.html

fatal error: asm/io.h

Persze, hiszen az a mostani felállásban itt van:

/usr/src/linux-headers-3.2.0-4-common-rt/arch/x86/include/asm/io.h

Az architektúra, a legalapvetőbb i386.
Mi itt a korrekt megoldás?
Hogy tudom megmagyarázni a gcc -nek hogy hol vannak a headerek?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

-h
Vagy nem értek valamit, kéne a konkrét sor.

Én ugye konkrétan includ -olom az asm/io.h
#include
A compiler meg nem találja :(
Ott van, de az "új" wheezy ezt most itt tartja:
/usr/src/linux-headers-3.2.0-4-common-rt/arch/x86/include/asm/io.h

Valahogy a "multiarch" miatt(?) olyan helyen van ahol a gcc nem találja.
Az $arch parancs outputja "i686" - a kernel 3.2.0-4-686-pae
Nem lenne probléma, akár az egész elérési utat a "kódba" belevasalni, de akkor ki tudja mi mindent nem fog még megtalálni. Valami symlink, valami beállítás hiányzik, gondoltam ezt biztos mindenki (aki ilyesmivel próbálkozik) jól tudja, csak én nem tudok róla, lemaradtam :(
Szóval hogy kellene az architekturának megfelelő include -okra rámutatni?
Jelenleg a rendszer NEM "multiarch", vagy legalábbis én ilyet nem állítottam be.

* Én egy indián vagyok. Minden indián hazudik.

Kódba belevasalni az utolsó utáni lépés.
Nálad azt megelőzi a -I/usr/src/linux-headers-3.2.0-4-common-rt/arch/x86/include paraméter a gcc-nek.

Hint: jókat lehet puskázni gyári források Makefile-jából.

Az igazság az, hogy nagyon meglepett, hogy egy alig 10 soros C példaprogram nem fordul le egy frissen telepített Wheezy -n.

A megoldás, nekem úgy tűnik, egyszerűen arról szól, hogy ezek a régi jó kis HOWTO -k jócskán elavultak, (asm/io.h helyett sys/io.h) különösen a mostani mutiarch követelményekhez igazított környezetben, aminek akkor tájt még híre-pora sem volt.

* Én egy indián vagyok. Minden indián hazudik.

14 éves a dokumentáció, előfordul az ilyesmi.

Van egy érdekes megoldás:
helyett

Kár hogy nem túl világos, hogy ez miért került oda, de működik.

* Én egy indián vagyok. Minden indián hazudik.

Ez így hiányos.

Bocs! Nem néztem meg mi lesz belőle :(

#include <sys/io.h>

* Én egy indián vagyok. Minden indián hazudik.