【发布时间】:2012-07-28 05:13:25
【问题描述】:
我正在尝试将 C 库用于哈佛的开放课件课程。可以在here 找到教师关于设置外部库的说明。
当我尝试在我的 ubuntu 机器上使用这个库时,我正在遵循特定于 ubuntu 的说明。我按照页面上的说明进行设置,但是当我使用 cs50 库函数运行一个简单的helloWorld.c 程序时,gcc 不想一起玩。
例子:
helloWorld.c
#include <stdio.h>
#include <cs50.h>
int
main(void){
printf("What do you want to say to the world?\n");
string message = GetString();
printf("%s!\n\n", message);
}
$ gcc helloWorld.c
/tmp/ccYilBgA.o: In function `main':
helloWorld.c:(.text+0x16): undefined reference to `GetString'
collect2: ld returned 1 exit status
我按照说明中的说明按照信函的说明进行操作,但它们对我不起作用。我正在运行 ubuntu 12.04。如果我能进一步澄清我的问题,请告诉我。
【问题讨论】:
-
头文件包含只是标志着函数的原型。因此,您的文件可以正常编译,但存在链接错误。您是否按照建议安装了库?如果是这样,您能否检查这些库是否已正确安装并且路径变量是否已正确设置,以便 gcc 可以使用该路径找到这些库?
-
gcc helloWorld.c -lcs50工作吗? -
是的,没有意识到我必须在 cmd 行显式链接到 lib。谢谢大家。
-
它怎么知道你想链接到那个库?
-
我在想
#include <cs50.h>会像#include <stdio.h>一样工作。