Par exemple:
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.
À une estimation quelque part en cours de route après avoir essayé de corriger le message d'erreur:
/ usr / bin / ld: impossible de trouver crt1.o: aucun fichier ou répertoire de ce type
J'ai complètement foutu les choses. Quelqu'un pourrait-il s'il vous plaît conseiller?
Réponses:
Vous devez installer un
gcc-multilib
package qui apporte des en-têtes spécifiques 32 bits à votre système d'exploitation 64 bits.la source
Cela fonctionne bien pour moi, sur une nouvelle installation onirique.
/usr/include/x86_64-linux-gnu/bits/predefs.h
est fourni par le paquet libc6-dev, peut-être qui n'est pas installé correctement?Vous pouvez "réinstaller" ce package avec:
Cependant, si ce fichier est présent, il semble que le chemin de recherche de votre compilateur ne cherche pas au bon endroit pour ce fichier. Vous pouvez vérifier en exécutant ce qui suit:
qui devrait imprimer le chemin de recherche des fichiers d'inclusion. Le mien dit:
Si ce n'est pas la même chose, je dirais qu'il existe une incompatibilité de version entre certains de vos packages essentiels à la construction. Vérifiez que vous disposez des bonnes versions des packages gcc et libc6-dev. En ce moment sur oniric, ceux-ci devraient être:
la source
J'ai eu le même problème avec mon compilateur avr-gcc.
J'ai lié les fichiers et dossiers dans / usr / include / i386-linux-gnu / à un dossier dans lequel avr-gcc recherche les fichiers. Par exemple: / usr / lib / avr / include /
Peut-être que quelque chose de similaire fonctionne pour gcc. À
la source