«cc1: ошибка: / usr / local / include: not a directory» после установки библиотеки C - PullRequest
0 голосов
/ 08 августа 2011

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

Я не очень разбираюсь в Unix.Когда я пытался скомпилировать один из примеров файлов c, который включает в себя файл cs50.h, я получаю:

cc1: error: /usr/local/include: not a directory

Кроме того, если я пишу cd /usr/local/include или cd /usr/local/lib, он говорит мнеэто снова не каталог, хотя когда я ls /usr/local они оба появляются.

Есть идеи?

1 Ответ

3 голосов
/ 08 августа 2011

Учитывая, что инструкции в заголовке:

  • Чтобы скомпилировать как статическую библиотеку в вашей собственной системе:
  • % gcc -c -ggdb -std=c99 cs50.c -o cs50.o
  • % ar rcs libcs50.a cs50.o
  • % rm -f cs50.o
  • % cp cs50.h /usr/local/include
  • % cp libcs50.a /usr/local/lib

Обратите внимание на использование «%» в качестве приглашения.Это указывает на то, что операции должны выполняться как root.

Если ваша система не настроена неправильно, вам нужно будет использовать привилегии root для копирования файлов в каталоги в /usr/local.Например, вы можете использовать sudo в качестве префикса для команд:

sudo cp cs50.h /usr/local/include
sudo cp libcs50.a /usr/local/lib

Мы можем сделать вывод (с достаточно высокой достоверностью), что у вас еще не было каталогов /usr/local/include и /usr/local/lib, ичто теперь у вас есть два файла (не каталоги) с именем:

  • /usr/local/include, который содержит заголовок cs50.h
  • /usr/local/lib, который содержит статическую библиотеку

Вы должны подтвердить это наблюдение с помощью ls -l /usr/local и, возможно, file /usr/local/*.Затем вы должны удалить файлы, создать каталоги и скопировать файлы во вновь созданные каталоги.

Единственное, что в этом объяснении не учитывается, - это отсутствие косой черты в сообщении об ошибке (которое первоначально гласило «cc1: error: usr/local/include: not a directory ').На данный момент я объяснил это ошибкой транскрипции, задавая этот вопрос.(И комментарий и редактирование подтверждают этот диагноз.)

...