我是编程新手并且正在参加cs50在线课程,该课程提供了一个带有IDE的在线容器,但为了解决问题集离线我下载了库文件,但我们无法在我的代码中引用它们,库导入语句被声明为未使用,并且该库中的函数被标记为不存在,任何人都可以伸出援助之手吗? print from the issue
答案 0 :(得分:2)
下载所有文件,我认为它们是 cs50.h 和 cs50.c 。
将两个文件放在主文件的同一目录中,并使用cs50.h的include语句,如下所示:
#include "cs50.h"
当我们使用不在标准库文件夹中的库时,我们必须将其包含在 ""
而不是<>
上述陈述令人震惊,因为它具有误导性。您可以实际上使用<>
来包含您自己的标头,前提是您将这些标头所在的目录作为编译器的搜索路径之一。
假设您要编译foo.c,它使用名为 bar.h的头文件驻留在/ where / bar / lives / include /目录中,以及一个名为libbar.a的库/在/ bar / lives / lib /目录下,然后在大多数C编译器中,您可以使用-I
标志和-L标志来包含并将正确的位链接到项目中:
要编译你的程序foo.c,你会:
cc -I / where / bar / lives / include -o foo.o -c foo.c
要链接你:
cc -o foo foo.o -L / where / bar / lives / lib -lbar
这两个步骤将生成程序二进制文件foo
有趣的是,您可以使用-I.
和-L.
来包含当前的工作目录,并将<>
用于您心中的内容。
答案 1 :(得分:-1)
首先,该机制在C中称为include
,正如代码本身所暗示的那样。
然后,您的问题出在#include
声明中。使用<...>
告诉编译器(特别是预处理器)查找系统中安装的库。要include
本地图书馆,您应该使用"..."
。使用此时,还要注意路径,因为它是相对的。
因此,考虑到您的文件夹结构,include
语句应为
#include "src/cs50.h"