&引用;cc1:错误:/usr/local/include:不是目录;安装C库之后
这是我第一次安装库。我按照指示做了。这是一个关于编程的在线课程 我不太懂Unix。当我试图编译一个示例c文件时,我得到:&引用;cc1:错误:/usr/local/include:不是目录;安装C库之后,c,unix,cs50,C,Unix,Cs50,这是我第一次安装库。我按照指示做了。这是一个关于编程的在线课程 我不太懂Unix。当我试图编译一个示例c文件时,我得到: cc1: error: /usr/local/include: not a directory 另外,如果我写cd/usr/local/include或cd/usr/local/lib,它会告诉我它不再是目录,即使当我ls/usr/local时它们都会出现 有什么想法吗?鉴于标题中的说明是: 要在您自己的系统上编译为静态库,请执行以下操作: %gcc-c-ggdb-std
cc1: error: /usr/local/include: not a directory
另外,如果我写cd/usr/local/include
或cd/usr/local/lib
,它会告诉我它不再是目录,即使当我ls/usr/local
时它们都会出现
有什么想法吗?鉴于标题中的说明是:
- 要在您自己的系统上编译为静态库,请执行以下操作:
%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
/usr/local
下的目录中。例如,您可以使用sudo
作为命令的前缀:
sudo cp cs50.h /usr/local/include
sudo cp libcs50.a /usr/local/lib
我们可以推断(具有相当高的置信度)您还没有目录/usr/local/include
和/usr/local/lib
,并且您现在有两个文件(不是目录)称为:
,其中包含标头cs50.h/usr/local/include
- 包含静态库的
/usr/local/lib
ls-l/usr/local
或者file/usr/local/*
验证此观察结果。然后您应该删除文件,创建目录,并将文件复制到新创建的目录中
这个解释唯一没有解释的是错误消息中缺少的前导斜杠(它最初说的是“
cc1:error:usr/local/include:nota directory
”)。现在,我把这归因于问这个问题时的抄写错误。(注释和编辑确认诊断。)鉴于标题中的说明如下:
- 要在您自己的系统上编译为静态库,请执行以下操作:
%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
/usr/local
下的目录中。例如,您可以使用sudo
作为命令的前缀:
sudo cp cs50.h /usr/local/include
sudo cp libcs50.a /usr/local/lib
我们可以推断(具有相当高的置信度)您还没有目录/usr/local/include
和/usr/local/lib
,并且您现在有两个文件(不是目录)称为:
,其中包含标头cs50.h/usr/local/include
- 包含静态库的
/usr/local/lib
ls-l/usr/local
或者file/usr/local/*
验证此观察结果。然后您应该删除文件,创建目录,并将文件复制到新创建的目录中
这个解释唯一没有解释的是错误消息中缺少的前导斜杠(它最初说的是“
cc1:error:usr/local/include:nota directory
”)。现在,我把这归因于问这个问题时的抄写错误。(一条注释和编辑确认了该诊断。)看起来您的错误消息指向的是相对目录,而不是绝对目录。你忘了在什么地方加个正斜杠了吗?我想应该是/usr/local/include
@Alex,这是一个打字错误,对不起。@Mohammad我在安装库的时候确实需要sudo。如果说明上说cp cs50.h/usr/local/include
,我必须使用sudo cp cs50.h/usr/local/include
。很抱歉,我错误地单击了删除按钮,它看起来像是您的错误消息,它指向的是相对目录,而不是绝对目录。你忘了在什么地方加个正斜杠了吗?我想应该是/usr/local/include
@Alex,这是一个打字错误,对不起。@Mohammad我在安装库的时候确实需要sudo。如果说明上说cp cs50.h/usr/local/include
,我必须使用sudo cp cs50.h/usr/local/include
。很抱歉,我错误地点击了删除按钮,通常是
提示符,而不是%
,表示根。@Keith:哦…麻烦…是的,你说得对…“%”表示另一个罪恶-使用C外壳。这不是我得到的提示…谢谢,这似乎解决了原来的问题。虽然我在复制文件的时候还得用sudo。现在我还得到了一个新的错误,当我gcc-of2c.of2c.c-lcs50
时。“未定义的符号”@fakaff:哪些符号是未定义的?另外,您的输出文件名是一个常规名称:您通常会编写gcc-o f2c f2c.c-lcs50
(或者,gcc-o f2c.o-c f2c.c
)。我得到:未定义的符号:“\u getfloat”,引用自:\u main in in ccG8nNEz.o ld:symbol未找到
通常是
提示符,而不是
,表示根。@Keith:噢……麻烦……是的,你说得对……“%”表示另一种罪恶——使用C外壳。这不是我得到的提示…谢谢,这似乎解决了原来的问题。虽然我在复制文件的时候还得用sudo。现在我还得到了一个新的错误,当我gcc-of2c.of2c.c-lcs50
时。“未定义的符号”@fakaff:哪些符号是未定义的?另外,您的输出文件名是一个常规名称:您通常会编写gcc-o f2c f2c.c-lcs50
(