[Q]
fort77 でプログラムをコンパイルすると、必ず
Value of  construct can be "0"; test with defined() at /usr/bin/fort77 line 273.
Value of  construct can be "0"; test with defined() at /usr/bin/fort77 line 279.
というメッセージがでるのですが
[A]
これは perl が出しているメッセージで、この指示通りに /usr/bin/fort77
の 273 行目と 279 行目に
     while (defind($line = ) &&
     while (defind($line = ) && ($line !~ '#endif')) {
というように defined を加えてやれば良いです。
いちいち書き換えるのが面倒くさくなって作った
パッチ
もあったりします。(笑)
/usr/bin にこのファイルをコピーして、root で 
$ cd /usr/bin 
$ patch < fort77.patch 
(fort77.patch はこのパッチのファイル名)
とやればパッチをあてることができます。
パッチをあてる前のファイルは fort77.orig という名前で残っていると
思いますので安心してください。(笑) 
[Appendix]
fort77 は perl スクリプトで、
warning がでている部分を抜き出すと、
268: # Separate the prototypes out from the C files.
269:
270: if ($extract_prototypes) { 
271:   $pfile = ($basefile =~ /([^\/]*\.).$/)[0] . "P";
272:   open(CFILE, "$cfile") || die ("$0: Cannot open $cfile\n");
273:   while (($line = ) &&
274:          ($line !~ '#ifdef P_R_O_T_O_T_Y_P_E_S\n')) {
275:       print $line;
276:   }
277:   if ($_) {
278:       open(PFILE, ">$pfile") || die ("$0: Cannot open $pfile\n");
279:       while (($line = ) && ($line !~ '#endif')) {
280:          print PFILE $line;
281:       }
282:       close(PFILE);
283:   }
284:   close(CFILE);
となってます。
# 行頭にある数字は行番号、スペースは適当に省略してます。
この部分は C に変換したファイルをコンパイルするために読み込んでいる?
ところのようで、変更を加えなくても結果には影響は及ぼさないと思います。
戻る