【发布时间】:2015-01-25 06:54:21
【问题描述】:
我正在尝试安装 cs50 库 https://manual.cs50.net/library/#mac_os 这样我就可以在我的 OS X 10.10.1 上为该类编译 c 代码。不幸的是,我遇到了一些问题。
让我带你了解我到目前为止所做的事情。按照上面链接的说明,我在 bash 终端中输入了以下命令:
$ ls
cs50.c cs50.h
$ gcc -c -ggdb -std=c99 cs50.c -o cs50.o
$ ar rcs libcs50.a cs50.o
$ rm -f cs50.o
$ chmod 0644 cs50.h libcs50.a
$ sudo mkdir -p /usr/local/include
$ sudo mv -f cs50.h /usr/local/include
$ sudo mkdir -p /usr/local/lib
$ sudo mv -f libcs50.a /usr/local/lib
$ cd ..
$ rm -rf library50-c-5
在看似正确安装了库之后,我运行gcc generate.c -o generate来编译文件。我收到以下错误:
$ pwd
home/Developer/pset3/find
$ ls
Makefile find.c generate.c helpers.c helpers.h
$ gcc generate.c -o generate
generate.c:17:10: fatal error: 'cs50.h' file not found
#include <cs50.h>
^
1 error generated.
$
我在运行gcc generate.c -o generate -lcs50时也遇到了同样的错误
为什么找不到 cs50.h 文件?文件是否安装正确?
我搜索了类似的问题,但其他人似乎遇到了稍微不同的问题:
【问题讨论】:
-
您需要在命令行中使用
-I /usr/local/include和-L /usr/local/lib(并且-L必须在-lcs50之前)。 -
OT:我讨厌那个模块。标头以
typedef char* string;开头,并没有变得更好。呃。 -
@WhozCraig FWIW,该库不适用于一般用途。它旨在促进 CS50 编程课程的教学。在课程的“第 3 周”中,讲师 David J. Malan 透露
string只是char*的别名,并开始解释它的含义。坦率地说,他们仍在使用 C 给我留下了深刻的印象。整个课程可通过edx.org 在线免费获得。