• 締切済み

texinfo-5.2のインストールについて

Science Linux 6にtexinfo をインストールしたいです。 ./configure --prefix=$HOME/local はうまくいって、MakeFileが生成されましたが、make できません。 エラーは、 infodoc.o: In function `info_where_is': $HOME/texinfo-5.2/info/infodoc.c:1153: undefined reference to `rpl_strstr' collect2: ld はステータス 1 で終了しました make[3]: *** [ginfo] エラー 1 というものです。 /home/shirakata/texinfo-5.2/gnulib/lib/string.h の中で # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif になっています。 エラーの原因は、cplusplus かGNULIB_NAMESPACEが定義されていないこと、もしくはrpl_strstr()の具体的な関数の中身の定義が見つからないことだと思うのですが、cplusplusやGNULIB_NAMESPACEの定義が見つからないので何をすべきなのか分かりません。 わかる方がいらっしゃいましたら、何かアドバイスを頂きたいです。 よろしくお願いします。 targetはx86_64-unknown-linux-gnu, gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) です。 何か必要な情報が欠けていたらすみません。

みんなの回答

noname#208507
noname#208507
回答No.1

(Science Linuxは使ったことがないので推測です) 逆ではないでしょうか。 __cplusplusとGNULIB_NAMESPACEの両方が見つかるのがエラーの原因では? texinfo-5.2/gnulib/lib/strstr.cに関数strstrが定義されているようです。ならば「# define strstr rpl_strstr」が有効になれば、関数の名前がrpl_strstrに置き換わります。しかし、定数__cplusplusとGNULIB_NAMESPACEの両方が定義されているため、rpl_strstrに置き換わらない、ということが起きているように思えます。条件が「# if !(defined __cplusplus && defined GNULIB_NAMESPACE)」なので。 少なくともC++コンパイラを使うと、自動的に__cplusplusが定義されます。しかし残念ながら、質問者さんのケースで、なぜこの定数が定義されてしまうのかは分かりません。単にconfigureとmakeをしているだけなら、Cコンパイラが使われると思うのですが。

noname#214270
質問者

お礼

大変遅くなりすみませんでした。アドバイスありがとうございます。お陰さまでうまく行きました!

関連するQ&A