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?
- 1769 megtekintés
Hozzászólások
-h
Vagy nem értek valamit, kéne a konkrét sor.
- A hozzászóláshoz be kell jelentkezni
É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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
14 éves a dokumentáció, előfordul az ilyesmi.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ez így hiányos.
- A hozzászóláshoz be kell jelentkezni
Bocs! Nem néztem meg mi lesz belőle :(
#include <sys/io.h>
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni