鉴于标题中的说明是:
- 要在您自己的系统上编译为静态库:
% 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
您应该使用and来验证这个观察结果file /usr/local/*
。然后您应该删除文件,创建目录,并将文件复制到新创建的目录中。
这个解释唯一没有解释的是错误消息中缺少的前导斜杠(最初是' cc1: error: usr/local/include: not a directory
')。目前,我将其归结为在提出这个问题时出现了转录错误。(评论和编辑证实了这一诊断。)