Als Beispiel:
hsmyers@ubuntu:~/c_dev$ cat hello.c
#include <stdio.h>
int main(int argc,char **argv) {
printf("Hello World!\n");
return 0;
}
hsmyers@ubuntu:~/c_dev$ gcc -c -o hello.o hello.c
In file included from /usr/include/stdio.h:28:0,
from hello.c:1:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
Irgendwo auf dem Weg nach dem Versuch, die Fehlermeldung zu beheben:
/ usr / bin / ld: crt1.o kann nicht gefunden werden: Keine solche Datei oder kein solches Verzeichnis
Ich habe die Dinge komplett durcheinander gebracht. Könnte jemand bitte beraten?
Antworten:
Sie müssen ein
gcc-multilib
Paket installieren , das 32-Bit-spezifische Header auf Ihr 64-Bit-Betriebssystem bringt.quelle
Dies funktioniert gut für mich, bei einer neuen Oneiric-Installation.
/usr/include/x86_64-linux-gnu/bits/predefs.h
wird vom libc6-dev-Paket bereitgestellt, vielleicht ist das nicht richtig installiert?Sie können dieses Paket "neu installieren" mit:
Wenn diese Datei jedoch vorhanden ist, sieht es so aus, als würde der Suchpfad Ihres Compilers nicht an der richtigen Stelle für diese Datei suchen. Sie können dies überprüfen, indem Sie Folgendes ausführen:
Hiermit sollte der Suchpfad für Include-Dateien gedruckt werden. Meins sagt:
Wenn dies nicht dasselbe ist, würde ich sagen, dass einige Ihrer Build-Essential-Pakete nicht mit der Version übereinstimmen. Überprüfen Sie, ob Sie die richtigen Versionen der Pakete gcc und libc6-dev haben. Im Moment sollten diese auf oneiric sein:
quelle
Ich hatte das gleiche Problem mit meinem avr-gcc-Compiler.
Ich habe die Dateien und Ordner in / usr / include / i386-linux-gnu / mit einem Ordner verknüpft, in dem avr-gcc nach -files sucht. Zum Beispiel: / usr / lib / avr / include /
Vielleicht funktioniert etwas Ähnliches für gcc. Zu
quelle