【问题标题】:readline not working properlyreadline 无法正常工作
【发布时间】: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; 语句之前

标签: c readline


【解决方案1】:

this link 中提到了类似的问题。您必须在构建阶段将libreadline.dylib 文件链接到您的项目。

【讨论】:

  • 这是我引用的修复链接之一,但它并没有解决我的问题。不过感谢您的帮助!
  • 您是否访问了 Build Phases 的 Link Binary With Libraries 部分并添加了 libreadline.dylib 和 ?该错误与此阶段有关,我不明白为什么在那之后它不应该工作。
  • 啊!我不知道该怎么做。我只是查了一下并添加了它。它现在工作正常,唯一的问题是我的输入加倍(例如,我输入 Sam,它输入为 SSaamm。)无论如何,谢谢你的回答!
猜你喜欢
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 2016-09-01
  • 2012-07-11
  • 2018-04-08
  • 2017-04-20
相关资源
最近更新 更多