PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel-Headers in Ubuntu Edgy Eft



schne_re
29.11.06, 08:40
Hi!

Ich konnte ein paar Pakete nicht kompilieren, also hab ich ein bisschen
gegoogelt.

Nun habe ich in Erfahrung gebracht, dass trotz installierter linux-libc-dev sowie
linux-headers-generic (bzw. linux-headers-$(uname -r)) die Header-Files nicht mehr in /usr/lib/include vorhanden sind, weil es anscheinend nicht unbedingt gebraucht wird.

So habe ich im Source #include <linux/compiler.h> auskommentiert, was auch funktioniert hat.

Jedoch fehlts jetzt wieder bei asm/unaligned.h , und die kann ich leider nicht so einfach auskommentieren ...

Weiß jemand, wie ich die includes wieder zum Laufen bekomme?

MfG schne_re

MiGo
29.11.06, 10:31
So habe ich im Source #include <linux/compiler.h> auskommentiert, was auch funktioniert hat.
Genau, die ist auch nur so pro Forma drin. Das ist ein alter Programmiererwitz, die einzubinden.

Ne, im Ernst:
Was versuchst du zu kompilieren, und wie exakt lautet die Fehlermeldung?
Was sagt "dpkg -l | grep header" (kleines L)?
Mein Debian hat übrigends nichtmal ein /usr/lib/include, wie kommst du darauf, dass die Header ausgerechnet da sein sollten?

schne_re
29.11.06, 20:01
Also,

dpkg -l | grep header:


ii libssl-dev
ii linux-headers-2.6.17-10
ii linux-headers-2.6.17-10-386
ii linux-headers-2.6.17-10-generic
ii linux-headers-386
ii linux-headers-generic


uname -r : 2.6.17-10-386

make:



make -C ./PLUGINS/src/myprog all
make[1]: Betrete Verzeichnis '/usr/bak/hda/Backup/myprog/PLUGINS/src/myprog'
make[1]: Verlasse Verzeichnis '/usr/bak/hda/Backup/myprog/PLUGINS/src/myprog'
make[1]: Betrete Verzeichnis '/usr/bak/hda/Backup/myprog/PLUGINS/src/myprog'
g++ -O2 -g -fPIC -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"myprog"' -DOPENSSL_HAS_AES -DAPIVERSNUM=10331 -D_GNU_SOURCE -I../../../include myprog.c
myprog.c:24:27: error: asm/unaligned.h: No such file or directory
myprog.c: In member function ‘void cDes::Des(unsigned char*, const unsigned char*, int) const’:
myprog.c:321: error: ‘get_unaligned’ was not declared in this scope
myprog.c:322: error: ‘get_unaligned’ was not declared in this scope
myprog.c:323: error: ‘get_unaligned’ was not declared in this scope
myprog.c:324: error: ‘get_unaligned’ was not declared in this scope
myprog.c:345: error: ‘put_unaligned’ was not declared in this scope
make[1]: *** [myprog.o] Fehler 1
make[1]: Verlasse Verzeichnis '/usr/bak/hda/Backup/myprog/PLUGINS/src/myprog'
make: *** [plugin] Fehler 2


Das mit den usr/lib/include hab ich auf einer Seite gelesen, wo Bugs über Ubuntu Edgy gepostet
werden, da stand auch was, wie man das get_unaligned bzw put_unaligned umgehen kann, dafür
hätt ich aber mehr programmierkentnisse gebaraucht, da es nicht wirklich beschrieben war.

Jedenfalls ist das get_unaligned irgendwas, was die Performance des Programms verbessern soll,
jedoch nicht wirklich was bringt ...


MfG

schne_re
29.11.06, 21:32
Ok, ich habe das Problem nun doch selbst lösen können.

Da das Problem bei mehreren verschiedenen Applikationen auftreten kann, hier die Lösung:

#include <asm/unaligned.h> ersetzen durch:


// #include <asm/unaligned.h>
#ifndef __I386_UNALIGNED_H
#define __I386_UNALIGNED_H
#define get_unaligned(ptr) (*(ptr))
#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
#else
#include <asm/unaligned.h>
#endif


mfg schne_re