【问题标题】:How can I properly install cs50.h Library on OS X 10.10.1?如何在 OS X 10.10.1 上正确安装 cs50.h 库?
【发布时间】: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 在线免费获得。

标签: c bash macos gcc cs50


【解决方案1】:

安装 cs50 库后,我将其添加到我的 ~/.bashrc 文件中。

function make50 { gcc "$1".c -o "$1" -I /usr/local/include -L /usr/local/lib -lcs50; }

然后启动一个新的终端或直接在当前终端中获取 ~/.bashrc 文件

source ~/.bashrc

现在假设您有一个目录,其中包含一个名为generate.c 的文件。您应该能够运行make50 generate(不带“.c”)并且该函数应该使用所需的所有参数调用编译器

user@macbook:~/project$ ls
generate.c
user@macbook:~/project$ make50 generate
user@macbook:~/project$ ls
generate   generate.c

您可以根据需要在 ~/.bashrc 中为您的函数添加更多库路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2014-09-03
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多