【发布时间】:2015-10-06 22:44:24
【问题描述】:
当我在 Xcode 中运行此代码时,构建失败。我从 The Big Nerd Ranch Guide to Obj-C 中得到了一部分。我不得不稍微修改一下(添加了库 stdlib.h 和 readline/readline.h)它说构建失败,但我看不到任何错误。这个问题可能看起来像重复,在某种程度上确实如此,但即使在看到他们的解决方案并亲自尝试之后,我仍然会收到错误。
#include <stdio.h>
#include <readline/readline.h>
#include <stdlib.h>
int main(int argc, const char * argv[])
{
printf("Who is cool? ");
const char *name = readline(NULL);
printf("%s is cool!\n\n", name);
return 0;
}
架构 x86_64 的未定义符号:“_readline”,已引用 从: main.o ld 中的 _main:未找到架构 x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看 调用)
【问题讨论】:
-
一方面你在运行它时会说“什么都没有发生”。但另一方面,您说“构建失败”。你能澄清一下你问的是编译时间问题还是运行时间问题?
-
哦,对不起!没有想清楚。当我点击运行时,它说构建失败。在此之前和之后,它都说没有错误。
-
当它说“构建失败”时,应该有一个错误日志。请发布所报告的确切错误。另外,您是否在 libreadline 中进行了链接?你说你已经“添加了库”。但这些是编译时使用的头文件,而不是链接所需的实际库。我对 Xcode 一无所知,但是您需要在某个地方告诉它链接到 libreadline。在命令行上,它将是
-lreadline选项。 -
我将在几秒钟后将控制台读数上传到问题中。
-
发布的代码缺少调用:
free(name);return 0;语句之前