c++ 未定义的建筑符号

jk9hmnmh  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(198)

我是C++的新手,并试图使用get_string,但我不确定我写错了什么,这是创建错误。
我的代码如下:

#include <stdio.h>
#include <cs50.h>

int main(void)
{
   string name = get_string("What's your name? ");
   printf("hello, %s\n", name);
}

它一直在说下面的错误:

Undefined symbols for architecture arm64:
  "_get_string", referenced from:
      _main in hello-890d43.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [hello] Error 1

有人知道我做错了什么吗?
我期望代码接受输入并打印出hello,(你的输入).

hgqdbh6s

hgqdbh6s1#

同样的事情发生在我身上时,试图使用cs50C库在我的本地Mac与M1芯片。
即使在按如下所述安装了库之后:还是不行。
问题在于这里的make命令默认不包含link命令。
假设您的源文件名为hello.c,而不只是执行以下操作:

make hello

您必须在终端中输入以下内容才能进行编译:

clang hello.c -o hello -lcs50

之后,当运行可执行文件时,它按预期工作:

./hello

相关问题