首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cs50库不会链接到cs50设备中的文件

cs50库不会链接到cs50设备中的文件
EN

Stack Overflow用户
提问于 2014-05-20 00:14:21
回答 3查看 2.2K关注 0票数 1

我对编程并不陌生,但我也不是专家。我从哈佛在线获取CS50,并尝试使用cs50库中的函数,这些函数应该是在cs50设备中自动工作的 (Fedora虚拟机版本19-2)。我的问题是,当我像他在讲座中那样进行#include <cs50.h>和编译时,我会收到一条错误消息。

这是一个简单的讲义幻灯片。

代码语言:javascript
复制
#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);
}

这是我得到的错误消息:

代码语言:javascript
复制
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文件的其他问题的答案,但我认为这些问题来自于那些试图在自己的机器上编译的人,而不是在一体机中编译的人。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-20 00:19:29

您必须让编译器在库中链接,方法是

代码语言:javascript
复制
clang -lcs50 -o adder adder.c

或者简单的

代码语言:javascript
复制
make adder

因为他们已经为你做了配置。

票数 3
EN

Stack Overflow用户

发布于 2020-01-24 11:00:32

代码语言:javascript
复制
#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开始

票数 0
EN

Stack Overflow用户

发布于 2021-07-30 20:32:24

这解决了我在Ubuntu上的问题

代码语言:javascript
复制
clang -o adder adder.c -lcs50

由于某些原因,make命令没有正确链接-lcs50

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23749103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档