ubuntuusers.de

Eclipse und CDT

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

KoenigGunther

Anmeldungsdatum:
20. Januar 2007

Beiträge: Zähle...

Hi!
Ich wollte das Tutorial hier nachvollziehen:
http://www.faqs.org/docs/Linux-mini/IO-Port-Programming.html#s9
und habe ein C Projekt in Eclipse erstellt:
http://logicallimit.ath.cx/~bchristi/Bildschirmfoto.png
In einem C Forum habe ich schon gehört, dass mir anscheinend noch include-Dateien fehlen, aber mich kümmert eher ein anderes Problem.

Standartmäßig wird anscheinend in /usr/include nach /asm/io.h gesucht. Gibt es da aber nicht.
Ich muss irgendwie mitteilen wo er nach den Linux-Headers suchen muss, oder?
Wenn ja, wie mache ich das?

Gruß
KoenigGunther

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Mit

locate io.h


suchst Du die Datei, und bist überwältigt vom spontanen Angebot.

Du schränkst die Ausgabe so ein, daß cpio.h und Konsorten herausfallen:

locate io.h | grep "/io.h$"


Mit etwas Überlegung reduziere ich die Ausgabe auf diese Kandidaten:

/usr/include/asm/io.h
/usr/include/sys/io.h
/usr/include/asm-i386/io.h

Da es bei mir in /usr/include asm/io.h gibt, scheine ich doch ein weiteres Paket installiert zu haben.
linux-header?
kernel-header?

KoenigGunther

(Themenstarter)

Anmeldungsdatum:
20. Januar 2007

Beiträge: 157

Danke für die Antwort, aber ich kann da irgendwie nichts mit anfangen...
Ich kann zwar als include-Pfad /usr/blablubb/io.h angeben, aber normalerweise, so wie ich das verstanden habe, ist das Ding standartmäßig so aufrufbar...
Ich finde auch kein Paket kernel-header und bei linux-header habe ich erstmal nach bestem Gewissen alles installiert was irgendwie gut aussah...:
linux-headers-2.6.20-16
linux-headers-2.6.20-16-386
linux-headers-2.6.20-16-generic (btw.: Was ist generic?!)
linux-headers-386
linux-headers-generic

Alles andere ist für Server oder älter...

Was muss ich jetzt tun?

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Wenn ich das Bildschirmphoto richtig interpretiere ist nicht das Problem, dass die Datei nicht gefunden wird, sondern das dem Compiler der Inhalt nicht gefällt. Oder steht in der ersten Zeile, die man laut Scrollbalken nicht sieht, dass die Datei nicht gefunden wurde?

Wenn die Datei da ist, gar nichts. Wenn nicht, das passende Paket finden.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Und

locate io.h | grep "/io.h$"


liefert keine Ergebnisse?

KoenigGunther

(Themenstarter)

Anmeldungsdatum:
20. Januar 2007

Beiträge: 157

Das hätte ich vielleicht dazusagen sollen...
Als ich den Screenshot gemacht habe, hatte ich aus einem Kernel die io.h rauskopiert und nach /usr/include gepackt - da hat er sie halt gefunden, aber das kann ja nicht Sinn und Zweck sein...
Interessant ist ja auch dass beim include der io.h im Verzeichnis asm selbiges (asm) als Keyword markiert wird.

Da ich die Datei inzwischen wieder aus /usr/include entfernt habe, bekomme ich das hier:

**** Build of configuration Debug for project ParallelPort ****

make -k all 
Building file: ../ParallelPort.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"ParallelPort.d" -MT"ParallelPort.d" -o"ParallelPort.o" "../ParallelPort.c"
../ParallelPort.c:3:20: warning: asm/io.h: No such file or directory
../ParallelPort.c: In Funktion »main«:
../ParallelPort.c:10: Warnung: Implizite Deklaration der Funktion »ioperm«
../ParallelPort.c:10: Warnung: Implizite Deklaration der Funktion »exit«
../ParallelPort.c:10: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »exit«
../ParallelPort.c:13: Warnung: Implizite Deklaration der Funktion »outb«
../ParallelPort.c:19: Warnung: Implizite Deklaration der Funktion »inb«
../ParallelPort.c:22: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »exit«
../ParallelPort.c:24: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »exit«
Finished building: ../ParallelPort.c
 
Building target: ParallelPort
Invoking: GCC C Linker
gcc  -o"ParallelPort"  ./ParallelPort.o   
./ParallelPort.o: In function `main':
/home/christian/Workspace/ParallelPort/Debug/../ParallelPort.c:13: undefined reference to `outb'
/home/christian/Workspace/ParallelPort/Debug/../ParallelPort.c:19: undefined reference to `inb'
collect2: ld gab 1 als Ende-Status zurück
make: *** [ParallelPort] Fehler 1
make: Das Target »all« wurde wegen Fehlern nicht aktualisiert.
Build complete for project ParallelPort


Wo ja explizit steht "no such file or directory".
Ausführen kann ich es im Moment gar nicht.

Ich weiss leider nicht mehr woher ich die io.h hatte als ich das Bildschirmfoto gemacht habe, aber ja, es sieht danach aus, als ob der Inhalt dieser Datei problematisch ist. Deswegen hab ich sie jetzt auch wieder rausgelöscht.

Hier mal die Ausgabe des locate Kommandos:

locate io.h | grep "/io.h$"
/usr/src/linux-headers-2.6.20-16-generic/include/linux/io.h
/usr/src/linux-headers-2.6.20-16-generic/include/config/net/ipg/io.h
/usr/src/linux-headers-2.6.20-16/include/linux/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-m68knommu/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-powerpc/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/sh03/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/bigsur/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/ec3104/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/mpc1211/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/hd64465/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh/saturn/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-um/io.h
/usr/src/linux-headers-2.6.20-16/include/config/net/ipg/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-parisc/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-x86_64/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-xtensa/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-alpha/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm26/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-avr32/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-h8300/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sparc/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-i386/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-cris/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-cris/arch-v10/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-cris/arch-v32/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-m32r/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-ia64/sn/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-ia64/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-m68k/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-mips/sn/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-mips/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-s390/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-v850/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sh64/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-cl7500/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ep93xx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-s3c2410/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-iop32x/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-iop33x/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ixp4xx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-netx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-omap/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-sa1100/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-versatile/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-integrator/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-iop13xx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-pnx4008/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-imx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-pxa/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-rpc/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-h720x/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ixp2000/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-l7200/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ixp23xx/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-shark/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-realview/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ebsa110/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-ebsa285/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-lh7a40x/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-at91rm9200/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-clps711x/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-arm/arch-aaec2000/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-frv/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-ppc/io.h
/usr/src/linux-headers-2.6.20-16/include/asm-sparc64/io.h
/usr/include/sys/io.h


Dass es die Datei irgendwo gibt, bezweifle ich gar nicht. Ich finde es lediglich seltsam dass ich die nicht in /usr/include liegen habe...

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Also ich habe mal nachgeschaut wo diese Datei auf meinem System herkommt:

new@s8n2:~$ apt-file search /usr/include/asm/io.h
linux-libc-dev: usr/include/asm/io.h

Hast Du linux-libc-dev installiert?

KoenigGunther

(Themenstarter)

Anmeldungsdatum:
20. Januar 2007

Beiträge: 157

Ja, habe ich ☹
Vielleicht mache ich einfach am Wochenende nochmal das komplette System platt und installiere neu...

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Ich habe geschaut, und bei mir findet apt-file nix.
Das Verzeichnis /usr/include/asm ist vom Tag der Linuxinstallation, als quasi 80% aller Pakete installiert wurden.

Was aber bringt eine Neuinstallation, wenn Du nicht weißt, was Du anders machen mußt?

KoenigGunther

(Themenstarter)

Anmeldungsdatum:
20. Januar 2007

Beiträge: 157

Hm, das hatte ich eh mal vor, weil ich viele Programme mal so installiert habe und dann wieder deinstalliert - ich hab das Gefühl dass viel zu viele Pakete mitinstalliert wurden und das System einfach aufgebläht ist. Vielleicht nutzt es ja was wenn ich nochmal von ganz vorne anfange und alles schön bedacht installiere (merkt man etwa dass ich jahrelanger Windowsnutzer war? 😛)

Antworten |