gcc больше не работает после обновления

Как пример:

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.

В предположении где-нибудь по пути после попытки исправить сообщение об ошибке:

/usr/bin/ld: не может найти crt1.o: Никакой такой файл или каталог

Я портил вещи полностью. Кто-либо мог советовать?

8
задан 25 November 2011 в 15:53

3 ответа

Необходимо установить gcc-multilib пакет, который приносит определенные заголовки на 32 бита к Вашей операционной системе на 64 бита.

10
ответ дан 23 November 2019 в 05:39

Это хорошо работает для меня на новой сновещательной установке. /usr/include/x86_64-linux-gnu/bits/predefs.h обеспечивается libc6-dev пакетом, возможно, который не установлен правильно?

Можно "переустановить" тот пакет с:

sudo apt-get install --reinstall libc6-dev

Однако, если тот файл присутствует, то похоже, что путь поиска Вашего компилятора не смотрит в правильном месте для того файла. Можно проверить выполнение следующего:

gcc --verbose -o hello hello.c

который должен распечатать путь поиска для, включают файлы. Мой говорит:

    #include <...> search starts here:
     /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include
     /usr/local/include
     /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed
     /usr/include/x86_64-linux-gnu
     /usr/include

Если бы это не то же, я сказал бы, что существует несоответствие версии между некоторыми Вашими существенными для сборки пакетами. Проверьте, что у Вас есть правильные версии gcc и libc6-dev пакеты. Прямо сейчас на сновещательном, они должны быть:

gcc           4:4.6.1-2ubuntu5
libc6-dev     2.13-20ubuntu5 
0
ответ дан 23 November 2019 в 05:39

У меня была та же проблема с моим avr-gcc компилятором.

Я связал файлы и папки в/usr/include/i386-linux-gnu/к папке, в которой avr-gcc ищет - файлы. Например:/usr/lib/avr/include/

ln -s /usr/include/i386-linux-gnu/* /usr/lib/avr/include/

Возможно, что-то подобные работы для gcc.Кому:

0
ответ дан 23 November 2019 в 05:39

Другие вопросы по тегам:

Похожие вопросы: