Je suis un utilisateur de Linux Mint 15.
Je voulais écrire un programme simple en C.
Ci-dessous, mon code. (Hw.c)
#include<stdio.h>
#include<conio.h>
int main()
{
printf("Hello World");
}
Mais, quand j'essaye de le compiler avec gcc
gcc -o hw hw.c
ça me donne une erreur
hw.c:1:18: fatal error: stdio.h: No such file or directory
compilation terminated.
J'ai googlé et trouvé des solutions qui disent d'installer build-essential
et essayé de l'installer
Sudo apt-get install build-essintial
mais cela donne à nouveau une erreur. L'erreur est
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:4.4.3) but it is not going to be installed
Depends: dpkg-dev (>= 1.13.5) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Alors qu'est-ce qui ne va pas? Quel est le problème?
Comment le résoudre?
PS . Le résultat de locate stdio.h
est
/usr/lib/Perl/5.14.2/CORE/nostdio.h
/usr/lib/syslinux/com32/include/stdio.h
J'avais le même problème et j'ai simplement installé le paquetage g ++ et corrigé le fichier d'inclusion manquant.
Sudo apt-get install g++
J'ai eu cette situation auparavant:
rleclerc@fvrwbp01:~# gcc -o tokens tokens.c
tokens.c:1:19: fatal error: stdio.h: No such file or directory
compilation terminated.
Tu as écrit:
Sudo apt-get install build-essintial
Il y a une faute de frappe. Essayez plutôt ceci (je suppose que vous avez déjà fait quelque chose de similaire):
Sudo apt-get install --no-install-recommends gcc
et:
Sudo apt-get install --no-install-recommends build-essential
Parfois, la relecture fait une différence:
The following NEW packages will be installed:
build-essential dpkg-dev g++ g++-4.7 libc-dev-bin libc6-dev libdpkg-Perl libstdc++6-4.7-dev libtimedate-Perl linux-libc-dev make
(...)
Cela a corrigé l'erreur.
Le nom du paquet pour la bibliothèque standard C est libc6
. Ses fichiers d'en-tête sont dans le package de développement: libc6-dev
. Le package de développement de certaines distributions Linux n'est pas installé. Vous devez l'installer vous-même:
Sudo apt-get install libc6-dev
Pourquoi l'installation de build-essentials
ne résout pas les dépendances que je ne connais pas. Mais je pense que la question ne concernait pas l'installation de build-essentials
et que cela n'est peut-être pas nécessaire du tout.
Références:
FWIW, Mint 17 a juste besoin de la compilation, essentielle pour compiler les programmes C
# apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
dpkg-dev g++ g++-4.8 libc-dev-bin libc6-dev libstdc++-4.8-dev
Suggested packages:
debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
glibc-doc libstdc++-4.8-doc
Recommended packages:
libalgorithm-merge-Perl
The following NEW packages will be installed:
build-essential dpkg-dev g++ g++-4.8 libc-dev-bin libc6-dev
libstdc++-4.8-dev
0 upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Ce problème peut venir lorsque vous essayez de mauvais répertoire ...
Je vous suggère de vérifier le répertoire.
Mettez à jour le système d'exploitation par: Sudo apt-get update.
La dernière option consiste à supprimer le compilateur gix existant et à installer le nouveau.
Vous pouvez aussi essayer ceci:
g ++ -o [NomFichier] [nom de l'exécutable]