0

我正在从哈佛扩展学校 cs50.tv 学习这门课程,在课程中他们使用的是他们制作的名为 cs50 的库,在这个链接上可以下载

https://manual.cs50.net/CS50_Library#Mac_OS

我下载了 zip 文件并解压缩,然后打开终端并 cd 到库目录,但每次我都按照手册中的步骤进行操作。

在我执行此命令后立即 gcc -c -ggdb -std=c99 cs50.c -o cs50.o

我在终端中收到此错误

cs50.c:15:16: error: gc.h: No such file or directory
cs50.c: In function ‘GetString’:
cs50.c:207: warning: implicit declaration of function ‘GC_FREE’
cs50.c:212: warning: implicit declaration of function ‘GC_REALLOC’
cs50.c:212: warning: initialization makes pointer from integer without a cast
cs50.c:230: warning: implicit declaration of function ‘GC_MALLOC’
cs50.c:230: warning: initialization makes pointer from integer without a cast

如果有人可以提供帮助,我将不胜感激。

4

2 回答 2

0

如果您尝试使用 gcc 编译 cs50.h 库,我发现这在大多数现代 64 位 mac 上都不成功。Xcode 4.x 通常需要 64 位兼容的库格式。GCC 尚未更新以包含 64 位目标文件。Clang/LLVM 是 gcc 的新兴替代品,Apple 将 Xcode 用作他们首选的编译器引擎。我还没有亲自尝试过,但会探索 Xcode 来为 Xcode 生成一个兼容的库。我正在 edX 学习 Harvardx cs50x 课程,这是很棒的课程,即使对于有经验的程序员也是如此。cs50.h 库很有趣,因为它为各种变量类型(例如 String、Integer)提供了相对健壮的 I/O 例程。float 为 c 编程语言,包括对缓冲区溢出攻击的良好保护。

于 2013-03-07T14:46:49.667 回答
0

gc.h 来自 Boehm 垃圾收集器。你可以在这里下载:

http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.0.tar.gz

打开包装,然后执行./configure && make && sudo make install。这会将标头安装到 /usr/local/include/gc 中,您需要告诉 gcc 去那里寻找它:

gcc -I/usr/local/include/gc -c -ggdb -std=c99 cs50.c -o cs50.o

于 2011-08-05T23:50:15.217 回答