PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gcc findet keine stdio.h



Noether
05.10.09, 20:48
Nachdem ich auf meinem Notebook feststellen mußte, das ich kein C-Programm compilieren kann weil schon so fundamentale Header wie stdio.h fehlen, habe ich nach kurzer Suche mittels atp-file die Pakete libc6-dev und libc6 installiert, aber das brachte nichts: Header wie stdio.h fehlen weiterhin :(
Wie bekommt man die C-Header installiert? :confused:

lOtz
05.10.09, 21:28
Wie lautet denn die genaue Ausgabe?

Noether
06.10.09, 19:29
Der gcc meldet "not found".
aptitude meldete beim Installieren von libc6-dev und libc6, beschwerte sich aber über ein fehlendes ldconfig, das merkwürdigerweise auch fehlt.
Was kann man denn gegen dieses merkwürdige Fehlen machen? :confused:

HirschHeisseIch
06.10.09, 19:53
gcc -o hello_world hello_world.c
not found
Hab ich in der Form noch nie gesehen...

Fehlermeldungen bitte *immer* im Wortlaut...

Noether
06.10.09, 23:59
Also ein
gcc -lm -o rand rand.c
mit einem minimalen C-Programm liefert:



rand.c:12:20: error: stdlib.h: No such file or directory
rand.c:13:19: error: stdio.h: No such file or directory
rand.c:14:18: error: time.h: No such file or directory
rand.c:15:18: error: math.h: No such file or directory
rand.c:16:20: error: unistd.h: No such file or directory
rand.c:17:23: error: sys/types.h: No such file or directory
rand.c: In function 'main':
rand.c:21: error: 'NULL' undeclared (first use in this function)
rand.c:21: error: (Each undeclared identifier is reported only once
rand.c:21: error: for each function it appears in.)
rand.c:22: warning: incompatible implicit declaration of built-in function 'sqrt'
rand.c:26: warning: incompatible implicit declaration of built-in function 'printf'


Und das
aptitude install libc6-dev libc6
gibt:



Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Reading task descriptions...
The following NEW packages will be installed:
libc-bin{a} libc-dev-bin{a} libc6-dev
The following packages will be REMOVED:
liblqr-1-0{u}
0 packages upgraded, 3 newly installed, 1 to remove and 821 not upgraded.
Need to get 0B/5680kB of archives. After unpacking 20.7MB will be used.
Do you want to continue? [Y/n/?] Writing extended state information...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.ISO-8859-15"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't exec "locale": No such file or directory at /usr/share/perl5/Debconf/Encoding.pm line 16.
Use of uninitialized value $Debconf::Encoding::charmap in scalar chomp at /usr/share/perl5/Debconf/Encoding.pm line 17.
dpkg: `ldconfig' not found on PATH.
dpkg: 1 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install. Trying to recover:
dpkg: `ldconfig' not found on PATH.
dpkg: 1 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Reading task descriptions...


Merkwürdig ist das das liblqr-1-0{u} anscheinend immer noch vorhanden ist, obwohl das angeblich dutzende Male deinstalliert wurde :confused:

HirschHeisseIch
07.10.09, 01:35
Und welche pfade stehen in der $PATH von root?

Noether
07.10.09, 21:04
Also $PATH ist bei root:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin

Rain_maker
07.10.09, 21:26
Und "ldconfig" existiert auch auf dem System?

Sieht mir irgendwie mächtig verfrickelt aus.

P.S. Hier ™ liegt ldconfig in /sbin.

gropiuskalle
07.10.09, 21:29
Z.B. stdio.h befindet sich unter /usr/include/¹, und der ist nicht in Deinem $PATH. 'export' wird vermutlich Abhilfe schaffen.

¹Siehe 'dpkg -S stdio.h' - ist doch irgendwas debianoides, oder?

Rain_maker
07.10.09, 21:32
*Erm* Vorsicht, $PATH bezieht sich nur auf executables, wenn Du bei Dir echo $PATH aufrufst, wirst Du sehen, daß dort auch kein /usr/include drin steht.

Da aber laut der apt-Ausgabe etwas weiter unten kein ldconfig gefunden wird und in $PATH für root einer _der_ Standardpfade fehlt, vermute ich mal, da wurde an verschiedenen Stellen von Userseite etwas "kaputtoptimiert".

P.S.


Use of uninitialized value $Debconf::Encoding::charmap in scalar chomp at /usr/share/perl5/Debconf/Encoding.pm line 17.
dpkg: `ldconfig' not found on PATH.
dpkg: 1 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.Viel deutlicher geht es eigentlich kaum.

gropiuskalle
07.10.09, 21:34
*Erm* [...]

Naja, war immerhin hübsch zurechtüberlegt von mir. ;)

Sorry, wollte keine falsche Fährte legen. Hab HirschHeisseIch falsch verstanden oder sowas.

ThorstenHirsch
07.10.09, 23:43
Und was sagt

gcc -I/usr/include -lm -o rand rand.c
?

Noether
08.10.09, 00:14
Und was sagt

gcc -I/usr/include -lm -o rand rand.c
?

Gleiche Fehlermeldung, weil die Header-Dateien schlicht fehlen.

pferdefreund
08.10.09, 06:01
Also, da ja, wie es scheint, selbst die Paketverwaltung abkackt - würde ich
mein home sichern und das System - ich weiß - ist nicht Linux-typisch -
neu installieren. Da ist doch noch sicherlich mehr im Argen und die Zeit - einmal
die Kiste auf Vordermann zu bringen - ist sicherlich kürzer, wie die ganzen
Fehler auszumerzen.
Ich bin Weidechef - ich darf das (ausnahmsweise neu installieren) - und Möhren klauen

retak
08.10.09, 06:15
apt-file search /sbin/ldconfig
libc-bin: /sbin/ldconfig






The following NEW packages will be installed:
libc-bin{a} libc-dev-bin{a} libc6-dev



Also, ldconfig gehöhrt zu libc-bin, welches erst installiert wird. Was aber nicht geht %=)

Sowas passiert immer, wenn man ein Update macht und der Computer dabei verreckt.

Und redet nicht so wirr, in root PATH ist alles drin was reingehört.

Rain_maker
08.10.09, 06:23
Und redet nicht so wirr,

Dann redet aber apt.get auch "wirr":


NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.

+


Also $PATH ist bei root:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin


in root PATH ist alles drin was reingehört.

Dummschwätzer.

John W
08.10.09, 14:38
Ist die Ausgabe dieses Befehls ungefähr ähnlich?

$ find /usr/include -name stdio.h
/usr/include/bits/stdio.h
/usr/include/c++/4.3/tr1/stdio.h
/usr/include/stdio.hZumindest die letzte Datei solltest du haben. Wenn nicht: Neu installieren; ich würd es allerdings erst mit "apt-get install -f" versuchen, das repariert kaputte Abhängigkeiten.
Desweiteren würde ich mal alle Updates installieren ("apt-get dist-upgrade").

Noether
09.10.09, 00:59
Ist die Ausgabe dieses Befehls ungefähr ähnlich?

$ find /usr/include -name stdio.h
/Zumindest die letzte Datei solltest du haben. Wenn nicht: Neu installieren; ich würd es allerdings erst mit "apt-get install -f" versuchen, das repariert kaputte Abhängigkeiten.
Desweiteren würde ich mal alle Updates installieren ("apt-get dist-upgrade").

Das find findet nichts und "apt-get install -f" sowie "apt-get dist-upgrade" helfen auch nicht weiter.
Da bleibt wohl nur neuinstallation :(

tictactux
09.10.09, 05:58
wieso ignorierst du daß /sbin nicht im Pfad von root ist, und somit kein ldconfig (Deine Aussage in Post #7)? ohne das werden etliche Pakete nicht installiert werden können, kein Wunder wenn man da vor einem kaputten System steht

Noether
09.10.09, 20:33
wieso ignorierst du daß /sbin nicht im Pfad von root ist, und somit kein ldconfig (Deine Aussage in Post #7)? ohne das werden etliche Pakete nicht installiert werden können, kein Wunder wenn man da vor einem kaputten System steht

Also ein "echo $PATH" zeigt /sbin an und ldconfig ist wirklich nirgend vorhanden!
Das /sbin liegt nur laut apt.get nicht in $PATH.
Ich versuche mal ein Update mit

aptitude update -y; aptitude -f --with-recommends dist-upgrade --assume-yes

Noether
11.10.09, 19:43
Also mit apt-get usw. war nichts mehr zu machen und fsck half auch nicht weiter :(
Badblocks meldet keine Probleme zu der Partition, aber das SuSE zeigt ein Problem mit der HDD:



Oct 11 17:31:46 nb kernel: ata3: link is slow to respond, please be patient (ready=0)
Oct 11 17:31:51 nb kernel: ata3: device not ready (errno=-16), forcing hardreset
Oct 11 17:31:51 nb kernel: ata3: soft resetting link
Oct 11 17:31:51 nb kernel: ata3.00: configured for UDMA/33
Oct 11 17:31:51 nb kernel: ata3: EH complete
Oct 11 17:32:57 nb kernel: st: Version 20080504, fixed bufsize 32768, s/g segs 256
Oct 11 17:36:49 nb kernel: Adding 506036k swap on /dev/sda2. Priority:-1 extents:1 across:506036k
Oct 11 17:39:55 nb kernel: ata3.00: qc timeout (cmd 0xa0)
Oct 11 17:39:55 nb kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
Oct 11 17:39:55 nb kernel: ata3.00: cmd a0/00:00:00:00:00/00:00:00:00:00/a0 tag 0
Oct 11 17:39:55 nb kernel: cdb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Oct 11 17:39:55 nb kernel: res 51/20:03:00:00:00/00:00:00:00:00/a0 Emask 0x5 (timeout)
Oct 11 17:39:55 nb kernel: ata3.00: status: { DRDY ERR }
Oct 11 17:40:00 nb kernel: ata3: link is slow to respond, please be patient (ready=0)
Oct 11 17:40:05 nb kernel: ata3: device not ready (errno=-16), forcing hardreset
Oct 11 17:40:05 nb kernel: ata3: soft resetting link
Oct 11 17:40:05 nb kernel: ata3.00: configured for UDMA/33
Oct 11 17:40:05 nb kernel: ata3: EH complete
Oct 11 17:40:28 nb su: (to beagleindex) root on none
Oct 11 17:41:09 nb kernel: ata3.00: qc timeout (cmd 0xa0)
Oct 11 17:41:09 nb kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
Oct 11 17:41:09 nb kernel: ata3.00: cmd a0/00:00:00:00:00/00:00:00:00:00/a0 tag 0
Oct 11 17:41:09 nb kernel: cdb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Oct 11 17:41:09 nb kernel: res 51/20:03:00:00:00/00:00:00:00:00/a0 Emask 0x5 (timeout)
Oct 11 17:41:09 nb kernel: ata3.00: status: { DRDY ERR }
Oct 11 17:41:14 nb kernel: ata3: link is slow to respond, please be patient (ready=0)
Oct 11 17:41:19 nb kernel: ata3: device not ready (errno=-16), forcing hardreset
Oct 11 17:41:19 nb kernel: ata3: soft resetting link
Oct 11 17:41:19 nb kernel: ata3.00: configured for UDMA/33
Oct 11 17:41:19 nb kernel: ata3: EH complete


Offenbar darf die Platte nur mit UDMA/33 laufen. Wie kann man das dem Kernel möglichst früh (beim Booten) sagen? :confused:

tictactux
12.10.09, 14:11
gib doch die Fehlermeldung in einer Suchmaschine ein, und suche Dir passende Lösungen für Deine (nicht genannte) Hardware. Es gibt da etliche Dinge die dafür verantworlich sein können, es müssen nicht die Platten (oder die Verkabelung) sein.
z.b. das hier: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/282536
wobei in dem konkreten Fall hpet=disable eine Lösung wäre - aber sicher nur 1 von x Möglichkeiten.

Noether
13.10.09, 21:19
Ok, ich mache es so:

a) Im BIOS UDMA33 einstellen, falls möglich
b) Kernel-Parameter

ide=no-dma

in der /boot/grub/menu.lst
und mit hdparm -i nachsehen ob das wirkte; wenn nicht "nodma" probieren
c) im Boot-Skript (/etc/init.d/rc.local) folgende Zeile:

hdparm -X66 /dev/sda &

für UDMA33. Danach mit hdparm -i nachsehen ob das wirkte.

((d) ggf. zusätzlich passender Parameter für den HDD-Treiber)

Unter WinXP und SuSE gibt es bisher keine Probleme, aber dem SuSE gebe ich die Parameter zur Sicherheit auch mit.
In Zukunft muß ich mal die Log-Dateien häufiger durchsehen ...

tictactux
14.10.09, 06:54
ide=no-dma
als Ergänzung: dazu wäre ein Blick in /usr/src/linux-source-X.x.x/Documentation/ide.txt evtl. hilfreich, das paßt dann auch zum verwendeten Kernel.
"nodma" sehe ich da nur für einzelne Geräte (also hdX) nicht für Bus (ideX), für letzteres gäbe es z.B. ideX=ata66.

Noether
14.10.09, 21:57
als Ergänzung: dazu wäre ein Blick in /usr/src/linux-source-X.x.x/Documentation/ide.txt evtl. hilfreich, das paßt dann auch zum verwendeten Kernel.
"nodma" sehe ich da nur für einzelne Geräte (also hdX) nicht für Bus (ideX), für letzteres gäbe es z.B. ideX=ata66.

Aha, danke, aber die HDD hat SATA und in der ide.txt finde ich nur etwas zu PATA.
Und in der sata.txt steht nichts passendes.