0

最近、CLFS マシンhttp://www.clfs.orgの構築を再試行することにしました。現在、3.0.0 SYSTEMD のステップ 5.5 です。実行するように言われmake -C include、次にmake -C progs tic. 最後のコマンドで失敗しています。パッケージが不足していますか、それとも何か間違っていますか?

Windows 10 で実行されている VMWare の CLFS ホストとして ArchLinux を使用しています。

コマンドについて私が見ているページは次のとおりです

最後のコマンドを実行したときのコンソールからの出力は次のとおりです。

    In file included from ../ncurses/curses.priv.h:283:0,
    from ../ncurses/lib_gen.c:19:_33528.c:835:15: error: expected ')' before 'int'
    ../include/curses.h:1594:56: note: in definition of macro 'mouse_trafo'
    #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
                                                           ^
4

1 に答える 1

2

yエラー メッセージは、シンボルを指しています。

  • これは、システムのヘッダー ファイルで (誤って) 定義されている可能性があります。
  • 迷子の #define を除けば、この行に関する唯一の興味深い点は、configure スクリプトが (CLFS に使用されるコンパイラのバージョンを考えると) c99 と同等である必要があるwmouse_trafousesのプロトタイプ(これは問題ではないはずです) です。bool_Bool

コンパイラが見るものを見ることができます

make -C ncurses lib_gen.i

で を探していwmouse_trafoますncurses/lib_gen.i

たとえば、次のように 2 回言及されています。

extern _Bool wmouse_trafo (const WINDOW*, int*, int*, _Bool);
extern _Bool mouse_trafo (int*, int*, _Bool);

 _Bool (mouse_trafo) (int * a1, int * a2, _Bool z)
{
 ; return wmouse_trafo(stdscr,a1,a2,z);
}

余分なセミコロンは問題ではありませんが、クロスコンパイラに何らかの問題があった場合、セミコロンが_Bool欠落する可能性があります。

CLFS 3.0 の手順ではgcc 4.8.3を使用します (すべてのパーツのバージョンは重要です)。ただし、ここで引用されているエラー メッセージは、 ncurses 6.0で対処されている gcc 5 による最近のレポートのように見えます。

于 2015-07-30T20:48:50.697 に答える