我对编程并不陌生,但我也不是专家。我从哈佛在线获取CS50,并尝试使用cs50库中的函数,这些函数应该是在cs50设备中自动工作的 (Fedora虚拟机版本19-2)。我的问题是,当我像他在讲座中那样进行#include <cs50.h>和编译时,我会收到一条错误消息。
这是一个简单的讲义幻灯片。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
// ask user for input
printf("Give me an integer: ");
int x = GetInt();
printf("Give me another integer: ");
int y = GetInt();
// do the math
printf("The sum of %i and %i is %i!\n", x, y, x + y);
}这是我得到的错误消息:
jharvard@appliance (~/Dropbox/pset-1): ls
adder.c even-odd.c hello
jharvard@appliance (~/Dropbox/pset-1): clang -o adder adder.c
/tmp/adder-iuV3am.o: In function `main':
adder.c:(.text+0x19): undefined reference to `GetInt'
adder.c:(.text+0x32): undefined reference to `GetInt'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
jharvard@appliance (~/Dropbox/pset-1): 我猜不是因为某种原因才找到图书馆的;有没有人知道该做些什么才能让所有的人都说出来?
我搜索了一些关于使用cs50.c文件的其他问题的答案,但我认为这些问题来自于那些试图在自己的机器上编译的人,而不是在一体机中编译的人。
发布于 2014-05-20 00:19:29
您必须让编译器在库中链接,方法是
clang -lcs50 -o adder adder.c或者简单的
make adder因为他们已经为你做了配置。
发布于 2020-01-24 11:00:32
#include <stdio.h>
#include <cs50.h>
int main (void)
{
printf ("Get me integer: " );
int x = get_int("");
printf ("Get me another integer: ");
int y = get_int("");
printf (" the sum of %i and %i is %i \n ", x,y,x+y);
}我们从clang -lcs50 sum.c -o sum开始
发布于 2021-07-30 20:32:24
这解决了我在Ubuntu上的问题
clang -o adder adder.c -lcs50由于某些原因,make命令没有正确链接-lcs50
https://stackoverflow.com/questions/23749103
复制相似问题