C言語関係掲示板

過去ログ

No.548.リンクエラー -lcursesの指定

[戻る] [ホームページ]
No.4805

ヘッダファイルの中身って
投稿者---るみるみ(2003/01/30 00:28:47)


#include <curses.h>
#define MAZE_X 7
#define MAZE_Y 7

int maze[MAZE_Y][MAZE_X]={ 2,2,2,2,2,2,2 ,
                           2,0,0,0,2,0,2 ,
                           2,0,2,0,0,0,2 ,
                           2,0,0,0,2,0,2 ,
                           2,0,2,2,2,0,2 ,
                           2,0,0,0,0,0,2 ,
                           2,2,2,2,2,2,2 };

void MainLoop(WINDOW * );
void DispMaze(WINDOW * );

int main(void){
  WINDOW * MazeWin;
  initscr();
  cbreak();
  noecho();
  MazeWin = newwin(MAZE_Y , MAZE_X , 0, 0);
  wtimeout(MazeWin,30);
  keypad(MazeWin, TRUE);
  DispMaze(MazeWin);  
  MainLoop(MazeWin);  
  endwin(); 
}

void DispMaze(WINDOW * MazeWin) {
  int x,y;
  for( y = 0 ; y < MAZE_Y ; y++)
    for( x = 0 ; x < MAZE_Y ; x++)
      if( maze[y][x] == 2 ) mvwaddch(MazeWin,y,x,'X');
}

void MainLoop(WINDOW * MazeWin) {
  int InputKey;
  int Y=1,Y1=1,X=1,X1=1;

  while(1){
    mvwaddch(MazeWin,Y1,X1,' ');
    mvwaddch(MazeWin,Y,X,'@');
    wmove(MazeWin,0,0);
    wrefresh(MazeWin);
    InputKey = wgetch(MazeWin);         
    if (InputKey =='q') break;  
    Y1=Y;
    X1=X;
    if(InputKey == 'h') X--;
    else if(InputKey == 'l') X++;
    else if(InputKey == 'j') Y++;
    else if(InputKey == 'k') Y--;

  }
}


UNIXを使っているんですが、上のリストを学校のUNIXでコンパイルするとコンパイルできるのですが自宅のUNIXでコンパイルすると

ld: Undefined symbols:
_cbreak
_endwin
_initscr
_keypad
_newwin
_noecho
_waddch
_wgetch
_wmove
_wrefresh
_wtimeout


ってゆうエラーがでちゃうんですけど、ヘッダファイルの中身って見ることはできないのですか?

No.4807

Re:ヘッダファイルの中身って
投稿者---るみるみ(2003/01/30 00:41:32)


ヘッダファイルがどこに入っているのかわからないのですが。なにかコマンドを使って開くことはできませんか?

No.4810

Re:ヘッダファイルの中身って
投稿者---silver fox(2003/01/30 00:58:32)


>ヘッダファイルがどこに入っているのかわからないのですが。なにか

findコマンド使えない?

No.4811

Re:ヘッダファイルの中身って
投稿者---るみるみ(2003/01/30 01:13:51)


findコマンドの使い方がよくわからないのですが、、、



No.4813

Re:ヘッダファイルの中身って
投稿者---silver fox(2003/01/30 01:27:57)


>findコマンドの使い方がよくわからないのですが、、、

補足:こちらをどうぞ。

No.4814

Re:ヘッダファイルの中身って
投稿者---るみるみ(2003/01/30 01:59:48)


パソコンの中全部から探してみたんですけどno fileってでちゃいました。stdio.hでも探してみたんですけどno fileってどうなんですかね?どこかに入ってますよね、普通。

No.4817

Re:ヘッダファイルの中身って
投稿者---kikk(2003/01/30 02:44:33)


ども。


> ld: Undefined symbols:
_cbreak
_endwin
_initscr
_keypad
_newwin
_noecho
_waddch
_wgetch
_wmove
_wrefresh
_wtimeout

リンカにcurses.hで宣言されている関数がみつからないといわれている
ようです。コンパイル時に-lcursesを指定してみてください。libcursesが
(ちゃんと)入っていれば通ると思います。
# math.hをincludeしてるときに-lmをつけるのと同様に


なお、ヘッダを探すにはfind / -name *.hとしてもいいですが、
時間と負荷がとてもかかります(他の人もそのマシンを使ってる場合は
ちょと気が引ける)。たいてい/usr/includeとか/usr/local/include
あたりにありますので、まずはそのあたりをあさってみてください。


では。

No.4818

Re:ヘッダファイルの中身って
投稿者---るみるみ(2003/01/30 03:12:41)


できました!!
ありがとうございます(^_^)
もっと勉強しなきゃだめですね。がんばります!

No.4853

Re:ヘッダファイルの中身って
投稿者---mana(2003/01/31 11:31:29)


borland c++を使っているんですがそれでも見る事ができますか?
できればstdlibのヘッダーファイルをみたいのですが・・・。