安装C库后“cc1:错误:/ usr / local / include:not a directory”

时间:2011-08-08 04:08:59

标签: c unix cs50

这是我第一次安装库。我按照here的说明进行操作。这是关于编程的在线课程。

我不是非常熟悉Unix。当我尝试编译其中一个示例c文件时,#include cs50.h文件,我得到:

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

另外,如果我写cd /usr/local/includecd /usr/local/lib,它会告诉我它不再是一个目录,即使它们出现在我ls /usr/local时也是如此。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

鉴于标题中的说明是:

  • 要在您自己的系统上编译为静态库:
  • % 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/localfile /usr/local/*验证此观察结果。然后,您应该删除文件,创建目录,并将文件复制到新创建的目录中。

此解释唯一没有考虑的是错误消息中缺少前导斜杠(最初称为“cc1: error: usr/local/include: not a directory”)。目前,我在提出这个问题时将其归结为转录错误。 (并且评论和编辑确认了诊断。)