这是我第一次安装库。我按照here的说明进行操作。这是关于编程的在线课程。
我不是非常熟悉Unix。当我尝试编译其中一个示例c文件时,#include cs50.h文件,我得到:
cc1: error: /usr/local/include: not a directory
另外,如果我写cd /usr/local/include
或cd /usr/local/lib
,它会告诉我它不再是一个目录,即使它们出现在我ls /usr/local
时也是如此。
有什么想法吗?
答案 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/local
和file /usr/local/*
验证此观察结果。然后,您应该删除文件,创建目录,并将文件复制到新创建的目录中。
此解释唯一没有考虑的是错误消息中缺少前导斜杠(最初称为“cc1: error: usr/local/include: not a directory
”)。目前,我在提出这个问题时将其归结为转录错误。 (并且评论和编辑确认了诊断。)