2012-04-21 100 views
0

我已經看過這個網站類似的問題和一派爲什麼發生這種情況,但嘗試了這些解決方案not able to compiledifference between ncurses and cursesanother compile error,但我仍然有錯誤undefined reference to stdscrwgetch編譯器發現問題圖書館,據我所知,因爲我用find來找到curses庫並輸入#include行中的完整位置。ncurses庫編譯錯誤

我的代碼如下

#include <ncurses.h> 
#include <stdio.h> 
#include <string.h> 

int first_line(char); 
int main(){ 

    char c = 0; 

    while((c = getch())!=EOF){ 
     first_line(c); 

    } 

    return 0; 
} 

int first_line(char c){ 
    if (c != '\n' && c != '\r'){ 
      putchar(c); 
     do{ 
      c = getch(); 
      putchar(c);} 
      while(c !='\n'); 

    } 
    else return 0; 

    return 0; 
} 

如果你能指出我已經錯過了還是做錯了,我會非常感激。

回答

2

ncurses.h是一個頭文件(包含聲明),而不是一個庫(包含實現這些聲明的代碼)。

您看到的錯誤信息來自鏈接器,而不是編譯器。

如果你正在使用gcc,你需要或者-lcurses-lncurses添加到編譯器命令行(源文件名)。

例如,我的系統上我複製你的源c.c,我可以編譯和使用任何

gcc c.c -o c -lcurses 

gcc c.c -o c -lncurses 
+0

感謝所有好的鏈接。現在程序不起作用,但我可以修復哈哈 – UNECS 2012-04-21 02:55:40