0

所以我已经在我的 Win8.1 机器上使用 Cygwin 安装/编译了 Speech_tools 和 Festival (2.3),以至于我可以使用这个命令成功地产生语音:

echo "hello world" | \src\main\festival --tts

下一步是让 FestVox 运行。我已经下载了 FestVox 2.6 并运行了 ./configure; 但是,“制作”步骤给我带来了麻烦,产生了这个错误:

gcc -O3 -Wall -o phonealign phonealign_main.o -LC:/cygwin64/Festival/build
/speech_tools/lib -lestools -lestbase -leststring -lncurses  -lstdc++ -lm -lwinmm -luser32
/usr/bin/ld: cannot find -leststring
collect2: error: ld returned 1 exit status
Makefile:80: recipe for target 'phonealign' failed

所以,我查看了我的 Makefile,它可能试图在哪里寻找这个文件,它看起来像在那个目录 (build\speech_tools\lib) 中,我的 libeststring.lib 缺少一个 libeststring.a 合作伙伴。libestbase 和 libestools 在该目录中都有 .lib 和 .a 文件。

我在哪一步做错了??是否应该在某个时候创建​​ libeststring.a ???什么时候?我怎样才能解决这个问题?

4

1 回答 1

1

我认为问题在于您应该在 Windows 中使用编译器而不是在 Cygwin 中使用 gcc。Cygwin 中构建 Festival 的作用是运行configure为 VC 生成 Makefile。然后nmake在 Windows 命令行中运行,而不是make在 Cygwin 中运行。

Cygwin 无法像 MINGW 那样构建本机 Windows 应用程序。Cygwin 中的应用程序构建只能在 Cygwin 中运行。

*.a 是 Linux 的静态库,由 gcc 构建。*.lib 是 Windows 的静态库,由 VC 构建。

所以我建议你看一下 FestVox 中的 README、INSTALL 文件。在我的文档( http://www.eguidedog.net/doc_build_win_festival.php)中查找是否有为 Windows 制作 Makefile 的描述,如过程“3. Makefile for VC in Cygwin”

卡梅伦

于 2014-05-14T06:22:02.450 回答