如何安装自定义 c 库?

如何安装自定义 c 库?

我只是想将哈佛大学为 cs50 课程创建的 ac 库添加到 Ubuntu。他们提供了如何安装该库的说明,如下所示。


Debian、Ubuntu

首先成为 root 用户,如下所示:

sudo su -

然后按如下方式安装 CS50 库:

apt-get install gcc
wget http://mirror.cs50.net/library/c/cs50-library-c-3.1.zip
unzip cs50-library-c-3.1.zip
rm -f cs50-library-c-3.1.zip
cd cs50-library-c-3.1
gcc -c -ggdb -std=c99 cs50.c -o cs50.o
ar rcs libcs50.a cs50.o
chmod 0644 cs50.h libcs50.a
mkdir -p /usr/local/include
chmod 0755 /usr/local/include
mv -f cs50.h /usr/local/include
mkdir -p /usr/local/lib
chmod 0755 /usr/local/lib
mv -f libcs50.a /usr/local/lib
cd ..
rm -rf cs50-library-c-3.1

我完全按照指示做了。但编译器报告“未定义对函数的引用”——该函数是 Get String。因此,我搜索解决方案并找到了一个。它说使用 switch -l

现在当我编译时我使用类似的东西:

gcc –o hello.c 你好 –lcs50

(我不记得确切的命令。)

但是,我无法使用make更易于使用的命令。

我理解链接库时出现了一些问题。有什么好的办法可以解决这个问题?

答案1

我也在学习 CS50,也遇到了同样的问题。按照 Cs50 的说明操作后,使用 gc 编译代码时出现此错误

/tmp/ccvUiSKS.o: In function `main':
Goodmario.c:(.text+0x21): undefined reference to `GetInt'
collect2: error: ld returned 1 exit status

我完全按照说明操作。我认为你应该继续使用 -lcs50,这并不难。例如,我用来编译程序的命令

gcc Goodmario.c -o Goodmario -std=c99 -lcs50

不太难:D

答案2

您应该添加以下命令以使 GetInt 正常工作:

$ gcc hello.c -I /usr/local/include -L /usr/local/lib -lcs50 -o hello

将“hello.c#”和“hello”重命名为你的输入文件和你想要的输出名称。选项-I/usr/local/include 告诉 gcc 也在 /usr/local/include 中查找头文件。选项-L/usr/local/lib 告诉 gcc(在链接阶段)也在 /usr/local/lib 中查找库,选项-lcs50 告诉 gcc 你需要哪些库。

来源:ubuntuforum.org

相关内容