Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
NonIlIteFreak
- Beiträge: 73
- Registriert: 30.04.2005 22:37:43
Beitrag
von NonIlIteFreak » 08.07.2007 01:39:39
Kleines Bastelprojeckt: Netter kleiner Kernel mit selbstgesrickten initrd.image in dem sich ein statisch gelinkter Player (mp3) die kernel module die dafür benötigt werden und natürlich die mp3 befindet.... und schon kommt beim starten des Systems eine netter kleiner sound... sei es nun der Imperiale Marsch aus Starwars oder eine nette Frauenstimme die einen begrüßt.... blos wie statisch linken ?
und ein folgendes make macht mir zwar eine ausführbare Datei bei der ldd sagt
Code: Alles auswählen
/mpg321-0.2.10.3# ldd ./mpg321
not a dynamic executable
auch wunderbar die hilfe mit --help ausgegeben wird...
ABER den versuch eine mp3 wiederzugeben scheitert mit einem "Speicherzugriffsfehler"
jo...
...
...
HILFE !
...
...
...
mfg Freak `;..;´
-
peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Beitrag
von peschmae » 08.07.2007 13:53:22
Hab mal schnell geguckt wie das so aussieht. Beim kompilieren bzw. linken:
Code: Alles auswählen
/usr/lib/gcc/i486-linux-gnu/4.2.1/../../../../lib/libao.a(audio_out.o): In function `ao_initialize':
(.text+0x9c1): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
network.o: In function `udp_open':
/tmp/mpg321-0.2.10.3/network.c:94: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
Da die glibc recht gross ist versuchst du da wohl am bessten irgendwie rumzuarbeiten (entsprechende Codestücke entfernen/ändern oder eine andere libc (dietlibc/uclibc) zu verwenden).
Wobei ich jetzt natürlich auch nicht garantieren kann das diese Warnings die direkte Ursache für deine Crashes sind.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
-
cosmac
- Beiträge: 4576
- Registriert: 28.03.2005 22:24:30
Beitrag
von cosmac » 10.07.2007 13:42:16
hi,
Man kann die glibc angeblich neu kompilieren mit einem Switch
(----enable-static-nss), der die NameServiceSwitch-Teile auch
statisch einbindet.
Statisch linken ist aus der Mode gekommen
Beware of programmers who carry screwdrivers.
-
NonIlIteFreak
- Beiträge: 73
- Registriert: 30.04.2005 22:37:43
Beitrag
von NonIlIteFreak » 14.07.2007 20:43:36
Jo... habe es nicht hinbekommen und nu läuft es...
mpg321 wollte sich torz dietlib nicht zur mitarbeit überreden lassen mpg123 lässt sich hingegen sauber durchlaufen lassen.
schreibe bei gelegenheit noch mal genau wie es gemacht habe.
dennoch danke für die vorschläge
mfg freak