Impossible de compiler le programme c simple sous Linux Mint 15

Je suis un utilisateur de Linux Mint 15.

je voulais écrire simple programme en C.

Ci-dessous mon code.(hw.c)

#include<stdio.h>
#include<conio.h>
int main()
{
    printf("Hello World");
}

Mais quand j'essaie de le compiler avec gcc

gcc -o hw hw.c

il 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 il y a encore 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

/usr/lib/perl/5.14.2/CORE/nostdio.h
/usr/lib/syslinux/com32/include/stdio.h
19
demandé sur namco 2013-10-21 20:35:13

5 réponses

j'avais le même problème, et j'ai simplement installé le paquet g++ et qui a corrigé le fichier include manquant.

sudo apt-get install g++

32
répondu david 2013-11-12 12:39:25

j'ai eu cette situation avant:

    rleclerc@fvrwbp01:~# gcc -o tokens tokens.c
    tokens.c:1:19: fatal error: stdio.h: No such file or directory
    compilation terminated.

Vous avez é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 correction d'épreuves fait une certaine 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.

8
répondu догонят 2014-03-26 16:23:10

FWIW, Mint 17 juste besoin de build-essential pour compiler des programmes en 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.
6
répondu Mike Gleason 2014-07-17 23:21:55

le nom du paquet pour la bibliothèque standard C est libc6. Ses fichiers d'en-tête sont dans le paquet de développement: libc6-dev. Certaines distributions Linux n'ont pas le paquet de développement installé. Vous devez 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 n'était pas à propos de l'installation de build-essentials et peut-être qu'il n'est pas nécessaire à tout.

Références:

6
répondu user2229691 2015-09-18 14:46:34

ce problème peut se produire lorsque vous essayez à partir du mauvais répertoire...

je vous suggère de vérifier répertoire.

Mise à jour de l'OS par: sudo apt-get update.

La dernière option est de supprimer le compilateur gcc existant et d'installer le nouveau.

Vous pouvez aussi essayer ceci:

g++ - o [nom du fichier] [nom exécutable]

0
répondu krishna chalise 2015-09-18 16:30:11