Apple Mach-O链接器(Id)错误

时间:2012-03-03 00:18:26

标签: c

我的代码与我前面提到的this问题完全相同,所以没有必要在这里复制它

这是我得到的错误:

Undefined symbols for architecture x86_64:
  "_stdscr", referenced from:
      _screen_init in screen.o
  "_werase", referenced from:
      _screen_init in screen.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我以前遇到过这个错误,我觉得它与重复的函数名称有什么关系,但我不知道如何调试它。

修改

将libncurses.dylib文件添加到我的项目后,上面讨论的错误已经消失,但是当我调用screen_init()时出现了一个新的错误;在我的main.cpp中:

// main.cpp

#include "screen.h"

int main(){
   screen_init();
}

//新错误

Undefined symbols for architecture x86_64:
  "screen_init()", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

几乎相同的错误,除了现在在我的主要。我还缺少另一个图书馆吗?这些错误非常神秘,并没有多大帮助。

1 个答案:

答案 0 :(得分:1)

我想您需要将库添加到链接阶段,如果您要使用XCode,则应将其添加到项目详细信息中:

  • 选择项目详情
  • 选择构建阶段标签
  • 使用库部分打开链接二进制文件
  • 点击加号
  • libncurses.dylib添加到您的项目中。