如何导入 c 库?

how do I import a c library?

我是编程新手,正在学习 cs50 在线课程,该课程提供了一个带有 IDE 的在线容器,但为了离线完成问题集,我下载了库文件,但一直无法使用要在我的代码中引用它们,库导入语句被声明为未使用并且该库中的函数被标记为不存在,任何人都可以伸出援手吗? print from the issue

下载所有文件,我想它们是cs50.hcs50.c.

将这两个文件放在主文件的同一目录中,并像这样对 cs50.h 使用 include 语句:

#include "cs50.h"

当我们使用不在标准库文件夹中的库时,我们必须用""而不是<>[=21=来包含它]

编者注

上述说法令人震惊,因为它具有误导性。您 可以 实际上使用 <> 来包含您自己的 header,前提是您将那些 header 所在的目录作为搜索编译器的路径。

假设您要编译 foo.c,它使用位于 /where/bar/lives/include/ 目录中的名为 bar.h 的 header 文件,以及 /where/bar/lives/lib/ 目录中名为 libbar.a 的库,那么在大多数 C 编译器中,您可以使用 -I 标志和 -L 标志来包含和 link项目中的正确位:

要编译你的程序foo.c你会:

cc -I/where/bar/lives/include -o foo.o -c foo.c

对于link你会:

cc -o foo foo.o -L/where/bar/lives/lib -lbar

这两个步骤将生成您的二进制程序 foo

有趣的是,您可以使用 -I.-L. 来包含当前的工作目录,并使用 <> 来满足您的需求。

首先,该机制在 C 语言中称为 include,正如代码本身所建议的那样。

那么,您的问题在#include声明中。使用 <...> 告诉编译器(特别是预处理器)查找系统中安装的库。对于 include 个本地图书馆,您应该使用 "..."。使用它时,还要注意路径,因为它是相对的。 因此,考虑到您的文件夹结构,include 语句应该是

 #include "src/cs50.h"