Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac OSX上安装flite时出错_Macos_Installation_Makefile_Static Libraries_Flite - Fatal编程技术网

Macos 在Mac OSX上安装flite时出错

Macos 在Mac OSX上安装flite时出错,macos,installation,makefile,static-libraries,flite,Macos,Installation,Makefile,Static Libraries,Flite,我已经下载了,并开始了安装它的常规过程 $ ./configure $ make $ sudo make install 然而,当我尝试将库安装到系统时,我遇到了一个奇怪的错误 $ sudo make install Installing mkdir -p /usr/local/bin mkdir -p /usr/local/lib mkdir -p /usr/local/include/flite /usr/bin/install -c -m 644 include/*.h /usr/loc

我已经下载了,并开始了安装它的常规过程

$ ./configure
$ make
$ sudo make install
然而,当我尝试将库安装到系统时,我遇到了一个奇怪的错误

$ sudo make install
Installing
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
mkdir -p /usr/local/include/flite
/usr/bin/install -c -m 644 include/*.h /usr/local/include/flite
/usr/bin/install -c -m 755 ../bin/flite_time /usr/local/bin
cp -pd ../build/i386-darwin13.1.0/lib/libflite_cmu_us_kal.a ../build/i386-darwin13.1.0/lib/libflite_cmu_time_awb.a ../build/i386-darwin13.1.0/lib/libflite_cmu_us_kal16.a ../build/i386-darwin13.1.0/lib/libflite_cmu_us_awb.a ../build/i386-darwin13.1.0/lib/libflite_cmu_us_rms.a ../build/i386-darwin13.1.0/lib/libflite_cmu_us_slt.a ../build/i386-darwin13.1.0/lib/libflite_usenglish.a ../build/i386-darwin13.1.0/lib/libflite_cmulex.a ../build/i386-darwin13.1.0/lib/libflite.a /usr/local/lib
cp: illegal option -- d
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
make[1]: *** [install] Error 64
make: *** [install] Error 2

我如何解决这个问题?

Mac使用的BSD
cp
和大多数linux发行版的GNU
cp
之间有一些细微的区别

考虑以下来自linux机器的
mancp
片段:

   -d     same as --no-dereference --preserve=links

   -P, --no-dereference
          never follow symbolic links in SOURCE

   --preserve[=ATTR_LIST]
          preserve  the  specified  attributes (default: mode,ownership,timestamps), if possible additional attributes: context,
          links, xattr, all
因此,基本上它试图做的是“复制以下路径,如果它们是链接,只复制链接,而不是底层文件。”

p
选项存在于Mac下,等同于linux行为。但是,
d
选项不存在

我试图找出一种方法来模仿Mac
cp
的“复制链接,而不是目标”行为,据我所知,没有令人愉快的方法

幸运的是,这是一个巨大的工作量。从Mac下的
man cp

除非设置了-R标志,否则始终遵循符号链接,在这种情况下,默认情况下不遵循符号链接

换句话说,因为我们知道我们只复制文件,所以您可以简单地用
R
标志替换
d
标志。这种行为在技术上是不同的(非常不同),但在这种特定情况下并不重要。您需要找到Makefile中使用的
cp
标志(最好是在文件顶部的
cp
变量中),然后简单地更改它们


如果您确定
cp
是在Makefile中执行的最后一件事,那么您也可以复制并粘贴它,而不是更改Makefile。

我使用Corbin的建议解决了这个问题。搜索Makefile后,我能够发现错误的来源

我正在使用flite-2.0.0-release,生成文件位于以下目录中:
/flite-2.0.0-release/main/

最后几行具有以下内容:

#       The libraries: static and shared (if built)
        cp -pd $(flite_LIBS_deps) $(INSTALLLIBDIR)
ifdef SHFLAGS
        cp -pd $(SHAREDLIBS) $(VERSIONSHAREDLIBS) $(INSTALLLIBDIR)
endif
#       The libraries: static and shared (if built)
        cp -pR $(flite_LIBS_deps) $(INSTALLLIBDIR)
ifdef SHFLAGS
        cp -pR $(SHAREDLIBS) $(VERSIONSHAREDLIBS) $(INSTALLLIBDIR)
endif
我已将更改为以下内容:

#       The libraries: static and shared (if built)
        cp -pd $(flite_LIBS_deps) $(INSTALLLIBDIR)
ifdef SHFLAGS
        cp -pd $(SHAREDLIBS) $(VERSIONSHAREDLIBS) $(INSTALLLIBDIR)
endif
#       The libraries: static and shared (if built)
        cp -pR $(flite_LIBS_deps) $(INSTALLLIBDIR)
ifdef SHFLAGS
        cp -pR $(SHAREDLIBS) $(VERSIONSHAREDLIBS) $(INSTALLLIBDIR)
endif

通过将
cp-pd
替换为
cp-pR
,我能够成功地安装flite。我希望这个建议能有所帮助。

我最近也遇到了同样的问题,TJ Rana给了我正确的方向,但下面是在MacOS()上安装flite的整个过程:


Flitevox或Flitelib是一个开源的小型运行时语音引擎。传递文本并创建一个有机器人说出的音频文件。对于一些项目来说,这真的很酷很有用

Flitelib既不是FFmpeg构建中可用的本机过滤器,也不是源代码中可用的本机过滤器。尽管文档中指出–enable libflite是config所必需的,但在安装FFmpeg之前需要安装flitelib。如果尝试启用筛选器,则会出现以下错误:

$ ./configure --disable-indevs --enable-libflite --enable-cross-compile
ERROR: libflite not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
$ sudo make install
Password:
Installing
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
mkdir -p /usr/local/include/flite
/usr/bin/install -c -m 644 include/*.h /usr/local/include/flite
/usr/bin/install -c -m 755 ../bin/flite_time /usr/local/bin
cp -pd ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_kal.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_time_awb.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_kal16.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_awb.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_rms.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_slt.a ../build/x86_64-darwin19.0.0/lib/libflite_usenglish.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_indic_lang.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_grapheme_lang.a ../build/x86_64-darwin19.0.0/lib/libflite_cmulex.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_indic_lex.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_grapheme_lex.a ../build/x86_64-darwin19.0.0/lib/libflite.a /usr/local/lib
cp: illegal option -- d
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
make[1]: *** [install] Error 64
make: *** [install] Error 2
在本文中,我将向您展示如何安装flite并使其与FFmpeg一起工作

首先从源代码处下载flitevox并安装:

$ git clone https://github.com/festvox/flite.git
$ cd flite/
$ ./configure
$ make
$ sudo make install
如果您运行的是linux,那么这个安装工作得非常好。如果您正在运行MacOS,则会出现以下错误:

$ ./configure --disable-indevs --enable-libflite --enable-cross-compile
ERROR: libflite not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
$ sudo make install
Password:
Installing
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
mkdir -p /usr/local/include/flite
/usr/bin/install -c -m 644 include/*.h /usr/local/include/flite
/usr/bin/install -c -m 755 ../bin/flite_time /usr/local/bin
cp -pd ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_kal.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_time_awb.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_kal16.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_awb.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_rms.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_us_slt.a ../build/x86_64-darwin19.0.0/lib/libflite_usenglish.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_indic_lang.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_grapheme_lang.a ../build/x86_64-darwin19.0.0/lib/libflite_cmulex.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_indic_lex.a ../build/x86_64-darwin19.0.0/lib/libflite_cmu_grapheme_lex.a ../build/x86_64-darwin19.0.0/lib/libflite.a /usr/local/lib
cp: illegal option -- d
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
make[1]: *** [install] Error 64
make: *** [install] Error 2
这是因为MacOS使用的“cp”变量与linux不同。我在解决方案中找到了这个堆栈溢出的答案:但下面是修复它的步骤

在文件夹“flite/main”中,您需要使用MacOS版本的命令编辑Makefile:

$ cd main/
$ vim Makefile
更换以下部件(来自TJ Rana):

至(-pd至-pR):

如何再次尝试安装flite:

$ sudo make install
flite不应显示任何错误,安装应完成

现在回到ffmpeg源过滤器:

$ ./configure --enable-libflite --enable-cross-compile
$ make install
安装将完成。要测试flite是否工作,请打开新的终端并键入:

$ ffplay -f lavfi -i flite=text='Hello World!'
你好,世界会说话的