首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >`get_string编译CS50代码的未定义引用

`get_string编译CS50代码的未定义引用
EN

Stack Overflow用户
提问于 2022-03-17 05:46:13
回答 5查看 2.3K关注 0票数 1

我是一个完全的初学者,没有以前的编码经验。这个问题的大部分答案都是用技术术语来回答的,但我无法理解。请用更友好的语言来帮助。

我的代码

代码语言:javascript
运行
复制
#include <stdio.h>
#include <cs50.h>

int main(void)
{
    string answer = get_string("What is your name");
    printf("Hello, %s\n", answer);
}

运行完之后,就知道了。

代码语言:javascript
运行
复制
> Executing task: C/C++: gcc.exe build active file <

Starting build...
C:\msys64\mingw64\bin\gcc.exe -fdiagnostics-color=always -g "C:\Users\MaNaS\Desktop\CS50x\C Code\0002.c" -o "C:\Users\MaNaS\Desktop\CS50x\C Code\0002.exe"
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\MaNaS\AppData\Local\Temp\ccIpKhYX.o: in function `main':
C:\Users\MaNaS\Desktop\CS50x\C Code/0002.c:6: undefined reference to `get_string'
collect2.exe: error: ld returned 1 exit status

Build finished with error(s).

Terminal will be reused by tasks, press any key to close it.

我使用VS代码和Mingw64。我下载了CS50库,并将cs50.c & cs50.h复制到C:\msys64\mingw64\include

EN

回答 5

Stack Overflow用户

发布于 2022-08-03 00:58:15

我也遇到了同样的问题,为了能够在Linux上编译代码,我执行了以下步骤:

1-安装C语言的CS50库

代码语言:javascript
运行
复制
 curl -s https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | sudo bash
 sudo apt install libcs50

2-向.bashrc文件中添加以下变量:

如何在Linux中设置环境变量

代码语言:javascript
运行
复制
 export CC="clang"
 export CFLAGS="-fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow"
 export LDLIBS="-lcrypt -lcs50 -lm"

要访问.bashrc文件,请在终端中键入nano ~/.bashrc,并在文件的最后一行键入上面的代码并保存

3-重新启动bash

代码语言:javascript
运行
复制
 source ~/.bashrc

4-安装clang

代码语言:javascript
运行
复制
 sudo apt-get install clang 

5-编译源代码:

代码语言:javascript
运行
复制
 make code_name

6-运行您的机器代码:

代码语言:javascript
运行
复制
 ./code_name
票数 2
EN

Stack Overflow用户

发布于 2022-06-23 21:53:29

我觉得有几个人想帮你不理解CS50x课程。您的代码与我的代码相匹配,但从您的输出来看,您似乎没有在Codespaces中运行您的项目。根据项目规范,您的工作应该在Codespaces中完成。阅读问题的开头,了解如何设置代码空间的说明。不要担心每个人都在谈论string是怎样的char*,而get_string并不存在,当您在Codespaces中运行您的代码时,您的行#include <cs50.h>将修复所有这些问题。

票数 1
EN

Stack Overflow用户

发布于 2022-06-23 22:54:31

在codespace终端中运行update50命令,并按照以下说明进行重新构建。

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

https://stackoverflow.com/questions/71507578

复制
相关文章

相似问题

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