[Canna-dev 272] Re: 3.7 のコンパイルエラーについて(ちょっと前進でもギブアップ)

Back to archive index

SHIOTA Shoichi Shoic****@light*****
2003年 12月 19日 (金) 12:16:01 JST


潮田です。

何が怒られているかがやっと分かりました。
config.log に残っているコマンドの引数ではなく、実行時の
画面に残っているコマンドラインを見れば良いだけでした。

私が [Canna-dev 267] で書いた、
>creating cannaconf.h
>        CPPFLAGS='   ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE  >-DFUNCPROTO=15 ` `  ' CC='cc' CFLAGS='-O ' IN_MAKE=yes ./configure >--prefix=/usr/local/canna
で環境変数 CPPFLAGS にセットされている ` ` がお気に召さない
ようです。


以下に、匍匐前進して行くさまを書きます。
# 先に書いておきますが、 Canna37 は当分使用する予定はありません。
# 単に、あまり一般的でない AIX という環境でコンパイルできるかの
# 確認が目的です。


$ xmkmf

作成された Makefile の CPPFLAGS を探す。
    CPPFLAGS='$(ALLDEFINES)'
となっていたので、ALLDEFINES を
    ALLDEFINES=-DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE 
               -DFUNCPROTO=15
とハードコード。(本当は一行で)

$ make canna
(途中省略)
        ` ` cc -c -O   -I../../include   ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE  -DFUNCPROTO=15 ` `    -DCPP='"/usr/lpp/X11/Xamples/util/cpp/cpp -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE"'   -DNEED_RKINDEP_SUBST  conf.c
"conf.c", line 1480.1: 1506-046 (S) 構文エラーです。
"conf.c", line 1486.26: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。
"conf.c", line 1487.2: 1506-277 (S) 構文エラー : ',' または '}' がない可能性があります。
"conf.c", line 1490.27: 1506-045 (S) 識別子 item が宣言されていません。
"conf.c", line 1490.33: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。
"conf.c", line 1494.1: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません 。
"conf.c", line 1495.18: 1506-045 (S) 識別子 confrec が宣言されていません。
"conf.c", line 1496.33: 1506-045 (S) 識別子 endrec が宣言されていません。
"conf.c", line 1504.5: 1506-045 (S) 識別子 defrec が宣言されていません。
"conf.c": 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。
"conf.c", line 1518.33: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません。
"conf.c", line 1522.1: 1506-026 (S) 初期化指定子の数は集合体メンバー数以下でなければなりません 


で終了。

--- ここから ---
@@ -1477,11 +1477,9 @@
 };

 const StrDefaultRec host_str_defaults[] = {
+  { CONF_DUMMYCODE, NULL  },
 };

 const NumberDefaultRec top_num_defaults[] = {
+  { CONF_DUMMYCODE, 0u  },
 };
--- ここまで ---

で黙らせる。
# 値は、適当です。

再度
$ make canna
(途中省略)
        cc -O   -I../include   ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE  -DFUNCPROTO=15 ` `   -DTCPCONN -DUNIXCONN -c convert.c
"convert.c", line 56.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。
"convert.c", line 93.17: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。
"convert.c", line 97.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初期化指定子が必要です。


で終了。
# diff が大きいので、やったことを書きます
    static const char *ProtoName[]
    static oreqproc Vector[]
    static const char *ExtensionName[][2]
の宣言([])が気に入らないようなので、これらの宣言を削除し、
ファイルの末尾にいる定義をこの位置に移動。
Vector の定義中にいる ProcReq2 の宣言が無いと怒られるので、
その前にプロトタイプを挿入。
# 実際の数を入れればいいだけかもしれませんが、意味が無いですよね。


再々度
$ make canna
(途中省略)
        cc -O   -I../include   ` ` -DSYSV -DAIXV3 -DAIXV4 -D_ALL_SOURCE  -DFUNCPROTO=15 ` `   -DTCPCONN -DUNIXCONN -c wconvert.c
"wconvert.c", line 88.19: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。
"wconvert.c", line 88.37: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。
"wconvert.c", line 89.22: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。
"wconvert.c", line 91.22: 1506-131 (S) auto または static の配列には、明示的な次元指定または初 期化指定子が必要です。


で終了。
    static const char *WideProtoName[], *ExtensionRequest[];
    static const reqproc WideVector[];
    static const reqproc ExtensionWideVector[];
を先と同様に変更。
今度は、宣言が無いと怒られる関数が多数いるので、それらの
プロトタイプを入れるのが面倒でした。


再再々度
$ make canna
(途中省略)
        rm -f pod
        cc -o pod -O   ` `   -L/usr/lib pod.o ` `   ` ` ` ` -bnodelcsect
ld: 0711-317 エラー: 未定義のシンボル: .RkiMalloc
ld: 0711-345 -bloadmap または -bnoquiet オプションを使用して、詳細な情報を得てください。


で終了。
./dic/ideo/pubdic/Makefile の

pod: pod.o ` `
        $(RM) $@
        $(CCLINK) -o $@ $(LDOPTIONS) pod.o $(LDLIBS) $(EXTRA_LOAD_FLAGS)

に ../../../lib/RKindep/libRKindep.a を付ければ、
黙るのは確認しましたが、 Makefile を毎回作成しなおす
ようで手が出ません。
# Imakefile を修正できればいいんでしょうが・・・


と、ここでギブアップしております。
愛の手をお待ちしております。

$ make canna -k
で見る限りは、こことこれを前提にしている部分だけが
エラーになっているようなので、これさえ通れば終わりだと思います。




Canna-dev メーリングリストの案内
Back to archive index