4

初めてライブラリを使用しようとしています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 ++の初心者です。誰かが助けてくれることを願っていますありがとう。

4

2 に答える 2

5

ncurses ライブラリ/usr/lib/libncurses.dylibをプログラムにリンクしていないようです...

プログラムをどのようにコンパイルしようとしているのか (makefile、コマンドライン、Xcode) が明確でないため、これ以上のアドバイスはできませんが、すぐに実行できるはずです...

Xcode の場合:

  1. プロジェクトナビゲーターで、プロジェクトを選択します
  2. ターゲットを選択
  3. 「ビルドフェーズ」タブを選択します
  4. 「Link Binaries With Libraries」エキスパンダーを開きます
  5. 「+」ボタンをクリックします
  6. フレームワークを選択します (この場合、SDK で libncurses を探します)。
  7. (オプション) 追加したフレームワークを「フレームワーク」グループにドラッグ アンド ドロップします。

注: OSX は Unicode を非常によくサポートしていますが、多くのオープンソースの ./configure スクリプトは、ncurses が Unicode 文字を表示しないように設定を選択しています。

于 2012-06-14T08:30:23.077 に答える