Pagina 1 di 1

Festival

Inviato: lun 20 feb 2006, 13:45
da geetwo
Salve a tutti,
ho un problema su un piccolo programma che deve usare le librerie di Festival TTS.
Il programma รจ molto semplice, deve solo passare una frase ("Hallo World") al TTS.

Codice: Seleziona tutto

#include <festival.h>



int main(int argc, char **argv)
{
int heap_size = 210000; // default scheme heap size
int load_init_files = 1; // we want the festival init files loaded
festival_initialize(load_init_files,heap_size);

// Say some text;
festival_say_text("hello world");

return 0;
}
Quando compilo e in seguito linko ottengo questi errori:

Codice: Seleziona tutto

g++ -g -Wall -I"/usr/include/festival" -I"/usr/include/speech_tools" -c prova.cpp
In file included from /usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/backward/fstream.h:31,
                 from /usr/include/festival/festival.h:43,
                 from prova.cpp:1:
/usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
g++ -g -Wall -I"/usr/include/festival" -I"/usr/include/speech_tools" -o prova prova.o -L"/usr/lib" -lFestival -lestools -lestbase -leststring
/usr/lib/libestools.a(editline.o)(.text+0x4d9d): In function `readline':
: undefined reference to `tgetent'
/usr/lib/libestools.a(editline.o)(.text+0x4dbe): In function `readline':
: undefined reference to `tgetstr'
/usr/lib/libestools.a(editline.o)(.text+0x4dd5): In function `readline':
: undefined reference to `tgetstr'
/usr/lib/libestools.a(editline.o)(.text+0x4dec): In function `readline':
: undefined reference to `tgetstr'
/usr/lib/libestools.a(editline.o)(.text+0x4e03): In function `readline':
: undefined reference to `tgetstr'
/usr/lib/libestools.a(editline.o)(.text+0x4e9d): In function `readline':
: undefined reference to `tgetstr'
/usr/lib/libestools.a(editline.o)(.text+0x4ecb): In function `readline':
: undefined reference to `tgetnum'
/usr/lib/libestools.a(editline.o)(.text+0x4edf): In function `readline':
: undefined reference to `tgetnum'
/usr/lib/libestools.a(editline.o)(.text+0x502a): In function `readline':
: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make: *** [prova] Error 1


se invece linko con il flag -shared non ottengo errori, ma a run-time ho un segmentation fault.

Qualcuno ha mai avuto un problema simile o potrebbe aiutarmi?

Grazie mille,
Giulio

Inviato: lun 20 feb 2006, 15:46
da TheSnowBoarder
Pare che sia inclusa la libreria readline, ma che le sue dipendenze non siano soddisfatte.
Al momento del linking, aggiungi le opzioni

-ltermcap -lhistory

ovvero linki libtermcap e libhistory.
Se continua a darti pernacchie, prova ad aggiungere prima di -ltermcap l'opzione -lreadline