J'ai récemment mis à niveau Kubuntu 12.04 vers 13.04, une réinstallation complète.
Utilisation de gcc 4.7.3. J'ai compilé quelques programmes pour découvrir qu'il n'y a pas de /usr/include/sys
répertoire. C'est types.h
, stat.h
, etc, sont absents. Ils existent dans le include/linux
répertoire mais pas include/sys
.
Que se passe-t-il?
Réponses:
Si vous utilisez Ubuntu sur 64 bits (je ne peux pas envoyer de texte exactement en ce moment sur un système 32 bits), le répertoire de la question est:
Maintenant, avec ces informations, vous pouvez créer des liens symboliques vers ces fichiers si vous en avez vraiment besoin à cet emplacement (
/usr/include/sys
) en utilisant ceci sur un terminal:la source
installez libc6-dev-amd64 si vous travaillez sur un linux 64 bits. Tapez la commande suivante sur le terminal ubuntu:
la source
le répertoire sys est un répertoire d'en-tête système unix / linux avec de nombreuses commandes système. Différentes marques / versions Linux peuvent le mettre à différents endroits. La commande suivante peut vous aider:
Le premier héberge les en-têtes du système BSD unix.
Le second est un répertoire contenant des têtes système Linux 64 bits.
Je rencontre des problèmes avec cmake ne pouvant pas trouver le fichier sys / stat.h. Ma solution temporaire est de faire un lien symbolique
Je ne veux pas polluer le répertoire / usr / include, et je crée uniquement un lien vers un fichier d'en-tête particulier et non vers le répertoire sys entier. Je pense que c'est un défaut de cmake, donc avoir un impact minimal en ne faisant qu'un seul lien. J'espère que cela pourra aider ceux qui souffrent du même problème.
la source
Vérifions quel est le chemin de recherche par défaut de gcc. De cette réponse , nous obtenons cette commande:
À la fin de la sortie, je vois cela sur ma machine:
Remarquez l'avant-dernière ligne. Cela signifie que lorsque vous compilez un fichier C avec
#include <sys/stat.h>
, gcc recherchera/usr/include/x86_64-linux-gnu/sys/stat.h
avant d'essayer/usr/include/sys/stat.h
, sans que nous ayons à créer de lien symbolique.la source
Puisque mon architecture est amd64, il n'y en a pas
libc6-dev-amd64
. Le package à installer estlibc6-dev-i386
.Cela a corrigé la dépendance pour un package CPAN.
la source