1

g++ から奇妙なエラーが発生しました。エラープロンプトが表示される手順は、他のプロジェクト内ではうまくコンパイルされますが、ここではどういうわけかそうではありません。g++ が不平を言うのは次のとおりです。

g++ -c -Wall -pedantic clear_screen.cpp -lcurses -o .clear.o
clear_screen.cpp:6:6: error: expected initializer before ‘->’ token
make: *** [.clear.o] Error 1

対応するメイクファイル部分は次のようになります。

CC=g++
CFLAGS=-c -Wall -pedantic
COMP=$(CC) $(CFLAGS)
.clear.o : clear_screen.cpp
    $(COMP) clear_screen.cpp -lcurses -o $@

問題のファイルは次の行で構成されています。

#include <unistd.h>
#include <term.h>

void clear_screen() {
  if ( !cur_term ) { // line 6 is here
    int result;
    setupterm( NULL, STDOUT_FILENO, &result );
    if (result <= 0) return;
  }
  putp( tigetstr( "clear" ) );
}

どこが間違っていますか?

4

1 に答える 1

1

clear_screenは(少なくとも私のシステムでは)term.hとして定義されているため、 . 出力を参照して、プリプロセッサの動作を確認してください。したがって、本質的には、競合を避けるために とは異なる名前を使用する必要があります。cur_term->type.Strings[5]->g++ -Eclear_screen

于 2013-01-27T01:24:34.127 に答える