2014年5月15日木曜日

(FreeBSD) ports/accessibility/gnome-speech で error: speak_lib.h: No such file or directory というエラー

FreeBSDのports

gnome-speech-0.4.25_2          GNOME text-to-speech API

ですが、しばらく前からmakeすると



cc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../.. -I../../gnome-speech -I/usr/local/include/libbonobo-2.0 -I/usr/local/include/bonobo-activation-2.0 -I/usr/local/include/orbit-2.0 -DORBIT2=1 -pthread -I/usr/local/include/glib-2.0 -I/usr/local/include   -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare  -I/usr/include/espeak  -I/usr/local/include  -O2 -pipe -fno-strict-aliasing -MT espeakspeaker.o -MD -MP -MF .deps/espeakspeaker.Tpo -c -o espeakspeaker.o espeakspeaker.c
espeaksynthesisdriver.c:32:23: error: speak_lib.h: No such file or directory
espeakspeaker.c:31:23: error: speak_lib.h: No such file or directory
In file included from espeaksynthesisdriver.h:35,
                 from espeaksynthesisdriver.c:34:
espeakspeaker.h:52: error: expected specifier-qualifier-list before 'espeak_VOICE'
In file included from espeaksynthesisdriver.c:34:
espeaksynthesisdriver.h:81: error: expected declaration specifiers or '...' before 'espeak_PARAMETER'
espeaksynthesisdriver.h:85: error: expected declaration specifiers or '...' before 'espeak_VOICE'
以下省略



という感じで、エラーになってました。
ようするにspeak_lib.hというファイルを見つけられない、というのが原因なので、いつも手でMakefileを書き換えていました。



gnome-speech-0.4.25/drivers/espeak/Makefile
にて



CPPFLAGS = -I/usr/local/include



となっているところを



CPPFLAGS = -I/usr/local/include -I/usr/local/include/espeak



に変更するだけなのですが・・・なんか毎回これが必要で面倒。どうして、いつまでたっても直らないんだろう?と思っていたのですが、ちょっと調べてみました。



https://forums.freebsd.org/viewtopic.php?&t=40287



を斜め読みしたところ、gnome-speechにて、make configして、オプションESPEAKを選択してからmakeすればいい、というようなことが書かれていたのでやってみました。



make rmconfig
make cofig
デフォルトではESPEAKは選択されていないので、選択する
make



たしかにできました。



Makefileにはちゃんとこんな感じで書いてありました。



espeak_INCLUDES = /usr/local/include/espeak
espeak_LIBS = -L/usr/local/lib -lespeak



状況を整理。



  • make configして、ESPEAKを選択しないと、エラーになる


  • make configして、ESPEAKを選択すると、エラーにならない


もしかして、espeakがインストールされているのがいけないのかもしれない・・・



pkg info -r espeak してみると



espeak-1.47.11:
        speech-dispatcher-0.8
        gnome-speech-0.4.25_2



とりあえず
pkg delete speech-dispatcher
pkg delete -f gnome-speech
pkg delete espeak
してから



cd /usr/ports/accessibility/gnome-speech
make rmconfig
make config  ・・・ESPEAKは選択しない
make



うまくいきました



どうもespeakがインストールされていると、gnome-speechのESPEAK無し(portsのデフォルト)が失敗するようです。



FreeBSD10でバイナリパッケージしか使っていない別のPCでは、gnome-speechはインストールされていましたが、espeakはインストールされていませんでした。なるほど。



20140514



0 件のコメント:

コメントを投稿