代码之家  ›  专栏  ›  技术社区  ›  Filip W

Apple Mach-O(ID)链接器错误,ncurses

  •  0
  • Filip W  · 技术社区  · 7 年前

    据我所知,问题来自包含所有getch属性的标准ncurses库。我之所以发布这篇文章,是因为我真的找不到解决方案,而且与其他链接器错误相比,这个错误似乎有点不同。 我正在使用一台带有Xcode 8的OS X计算机,简单的命令行脚本作为Xcode项目。 Image view.

    int x, y;
    int ch;
    x = width / 2;
    y = height / 2;
    

    system("clear");
    
    for (int i = 0; i < width+2; i++) //upper row
        cout << "#";
    cout << endl;
    
    for (int i = 0; i < height; i++) //mid rows upways
    {
        for (int j = 0; j < width; j++) //mid rows sideways
        {
            if (j == 0)
                cout << "#";
            if (i == y && j == x)
                cout << "O";
            else
                cout << " ";
            if (j == width - 1)
                cout << "#";
        }
        cout << endl;
    }
    
    for (int j = 0; j < height+2; j++)  //bottom row
        cout << "#";
    cout << endl;
    

    问题

    if (ch == 0 || ch == 224)
    {
        switch (getch ())
        {
            case 72:
                x++; //up key
                break;
    
            case 80:
                //down key
                break;
    
        }
    }
    

    我确实删掉了很多其他代码,但我相信其他东西一点都不重要。所以如果你想知道更多关于它的信息,请告诉我,我会编辑它。

    1 回复  |  直到 7 年前
        1
  •  3
  •   riodoro1    7 年前

    从截图上看,您似乎没有链接libncurses。在生成设置中的“其他链接器标志”中添加“-lncurses”(在navigator中单击项目,在编辑器中选择“生成设置”选项卡),或者更好地将libncurses添加为链接库(在Navigater中单击项目文件,选择“构建阶段”选项卡,展开“与库链接二进制文件”,单击加号并键入“ncurses”,选择“libncurse.a”或“libncourses.tbd”)。