我正在从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
如果有人可以提供帮助,我们将非常感激。
答案 0 :(得分: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
答案 1 :(得分:0)
如果您尝试使用gcc编译cs50.h库,我发现在大多数现代64位mac上都不成功。 Xcode 4.x通常需要64位兼容的库格式。 GCC尚未更新为包含64位目标文件。 Clang / LLVM是gcc的新兴替代品,并被Apple用于Xcode作为他们首选的编译器引擎。我还没有亲自尝试过,但是我将探索Xcode为Xcode生成一个兼容的库。我正在edX学习Harvardx cs50x课程,这对于有经验的程序员来说非常棒。 cs50.h库很有意思,因为它为各种变量类型提供了相对强大的I / O例程,例如:字符串,整数。用于c编程语言的float,包括对缓冲区溢出攻击的良好保护。