私はDon KnuthからCWEBプログラムをダウンロードしました。具体的には http://www-cs-faculty.stanford.edu/~knuth/programs/sliding.wです。 sliding.w
をsliding.c
に変換しました。 は今、私は使用してそれをコンパイルしようとしている:KnuthからCWEBプログラムをコンパイルする
gccのsliding.c -oを
をスライディングしかし、私は得る:
./sliding.w:116:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main(int argc, char *argv[])
^
/tmp/cc9NVnXq.o: In function `main':
sliding.c:(.text+0x2006): undefined reference to `gb_init_rand'
sliding.c:(.text+0x201c): undefined reference to `gb_fptr'
sliding.c:(.text+0x202b): undefined reference to `gb_fptr'
sliding.c:(.text+0x2036): undefined reference to `gb_fptr'
sliding.c:(.text+0x2047): undefined reference to `gb_flip_cycle'
collect2: error: ld returned 1 exit status
誰も私を助けることができますか?
'gb_flip.h'が対応するものをリンクする必要があります。 – Ryan
コンパイラ警告は、生成されたコードがC90用であり、C99用ではなくC11用ではないことを意味します(ただし、Cコンパイラ-GCC - デフォルトはC11モードですので、警告が必要です)。 'main()'の戻り値の型は 'int'ですが、C99以降、あなたは同じように宣言する必要があります。 'sliding.w'ファイルを見てください。 'int'なしで書かれたコードは?もしそうなら、修正してください。そうでない場合は、 'main()'の定義がどこから来たのかを調べなければなりません。 (しかし、 'sliding.w'の簡単な見方は' main() 'から' int'を省略していることを示しています - 最新のCでは更新が必要です) –