Невозможно скомпилировать простую программу c в Linux Mint 15

Я пользователь Linux Mint 15.
я хотел написать простую программу в C.
Ниже мой код. (Hw.c)

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

Но, когда я пытаюсь скомпилировать его с помощью gcc

gcc -o hw hw.c

это дает мне ошибку

hw.c:1:18: fatal error: stdio.h: No such file or directory
compilation terminated.

Я googled и нашел некоторые решения, которые говорят, чтобы установить build-essential
и попытался установить его

sudo apt-get install build-essintial

но он снова дает ошибку. Ошибка

    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.

Итак, что не так? В чем проблема?
Как его решить?

PS. Результатом locate stdio.h является

/usr/lib/perl/5.14.2/CORE/nostdio.h
/usr/lib/syslinux/com32/include/stdio.h

Ответ 1

У меня была такая же проблема, и я просто установил пакет g++ и исправил отсутствующий файл include.

sudo apt-get install g++

Ответ 2

У меня была такая ситуация раньше:

    [email protected]:~# gcc -o tokens tokens.c
    tokens.c:1:19: fatal error: stdio.h: No such file or directory
    compilation terminated.

Вы писали:

    sudo apt-get install build-essintial

Там опечатка. Попробуйте это вместо этого (я думаю, вы уже сделали что-то подобное):

    sudo apt-get install --no-install-recommends gcc

и

    sudo apt-get install --no-install-recommends build-essential

Иногда корректура делает разницу:

    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
    (...)

Это зафиксировало ошибку.

Ответ 3

FWIW, Mint 17 просто необходим для сборки программ 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.

Ответ 4

Имя пакета для стандартной библиотеки C - libc6. Его заголовочные файлы находятся в пакете разработки: libc6-dev. В некоторых дистрибутивах Linux не установлен пакет разработки. Вам необходимо установить его самостоятельно:

sudo apt-get install libc6-dev

Почему установка build-essentials не разрешает зависимостей, которые я не знаю. Но я думаю, что вопрос не касался установки build-essentials и, возможно, он вообще не нужен.

Литература:

Ответ 5

Эта проблема может возникнуть, если вы пытаетесь создать неправильный каталог...

Я предлагаю вам проверить каталог.
Обновите ОС: sudo apt-get update.
Окончательный вариант - удалить excxting gcc-компилятор и установить новый.

Вы также можете попробовать следующее:

g++ -o [имя_файла] [имя исполняемого файла]