2012-06-14 91 views
3

我試圖使用curses.h庫的第一次,但無論哪個函數我稱之爲我仍然得到,說問題與OSX獅子curses.h

-symbol(S)的誤差不找到架構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++的新手。 希望有人可以幫助 謝謝。

+1

混合標準流輸入/輸出('cin' /'cout')不建議使用curses。使用其中一種,但不能同時使用。 –

回答

5

看來你是不是ncurses庫/usr/lib/libncurses.dylib鏈接到你的程序......

目前尚不清楚你如何試圖編譯程序(生成文件,命令行,Xcode中),所以我不能再提醒,但應當容易做......

在Xcode中:

  1. 在項目導航,選擇項目
  2. 選擇目標
  3. 選擇「構建階段」選項卡
  4. 打開「鏈接二進制與圖書館」擴展
  5. 點擊「+」按鈕
  6. 選擇框架(在你的情況看您的SDK下的libncurses)
  7. (可選)將添加的框架拖放到「框架」組中

注意:OSX很好地支持unicode,但是許多開源./configure腳本選擇防止ncurses顯示unicode字符的設置。

+0

我正在編譯使用Xcode, –

+0

我試圖鏈接libn​​cruses但編譯器說它找不到它。是否有可能只是爲了I \ O而混合代碼? –

+0

不這麼認爲,可能會產生某種運行時錯誤,但不是鏈接時找不到的符號。什麼是確切的錯誤信息? (順便說一句,我添加了一個框架的步驟) – sergio

0

使用gcc在終端:

- > GCC FILENAME.C -lncurses

- > ./a.out