【问题标题】:Problems with curses.h on OSX LionOSX Lion 上的 curses.h 问题
【发布时间】:2012-06-14 08:25:25
【问题描述】:

我第一次尝试使用curses.h 库,但无论我调用哪个函数,我仍然收到一个错误提示

-未找到架构 x86_64 的符号-

我是否缺少某种初始化?这是我的代码

#include <iostream>
#include <unistd.h>
#include<time.h>
#include <sys/ioctl.h>
#include <iomanip>
#include <ncurses.h>

using namespace std;

int main(int argc, const char * argv[]){
    string a,b = ("...");
    WINDOW *mywindow;
    mywindow = initscr();
    refresh();
    cout<<"Inserisci la frase da passare in coolprint ->";
    cin>>a;
    coolprint(a);
    cout<<endl;
    hackprint(a);
    coolprint(b);
    cout<<endl;
    slideprint(a);
    fflush(stdin);
    getchar();
    return 0;
}

我没有发布所有功能,但如果我从curses.h 中取出呼叫并改用system("clear"),一切正常。 这可能是一些非常愚蠢的问题,但我是 C++ 的新手。 希望有人可以帮忙 谢谢。

【问题讨论】:

  • 不推荐将标准流输入/输出 (cin/cout) 与 curses 混合使用。使用其中一种,但不能同时使用。

标签: c++ osx-lion curses


【解决方案1】:

您似乎没有将 ncurses library/usr/lib/libncurses.dylib 链接到您的程序中...

不清楚你是如何编译程序的(makefile、命令行、Xcode),所以我无法提供进一步的建议,但应该很容易完成......

在 Xcode 中:

  1. 在项目导航器中,选择您的项目
  2. 选择您的目标
  3. 选择“构建阶段”标签
  4. 打开“使用库链接二进制文件”扩展器
  5. 点击“+”按钮
  6. 选择您的框架(在您的情况下,在您的 SDK 下查找 libncurses)
  7. (可选)将添加的框架拖放到“框架”组中

注意:OSX 很好地支持 unicode,但是许多开源 ./configure 脚本选择了阻止 ncurses 显示 unicode 字符的设置。

【讨论】:

  • 我只是尝试链接 libncruses,但编译器说它找不到它。是否可能只是 I\O 混合代码的问题?
  • 不这么认为,这可能会产生某种运行时错误,但不是链接时找不到符号。什么是确切的错误信息? (顺便说一句,我添加了添加框架的步骤)
  • 感谢小教程,现在程序已编译,问题出在框架上,但在运行时我仍然会遇到一些奇怪的行为。可能这只是研究更多的诅咒库的问题......谢谢你一直很有帮助,至少现在我可以开始了!
  • 感谢您的帮助!如果它有帮助,请不要忘记投票/接受这个答案......
【解决方案2】:

在终端中使用 gcc:

-> gcc 文件名.c -lncurses

-> ./a.out

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2012-12-26
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多