macos - 在 Mac OSX 上安装 flite 时出错

标签 macos installation makefile static-libraries flite

我已经下载了the latest source distribution of 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/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 机器的 man cp 片段:

   -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:

Symbolic links are always followed unless the -R flag is set, in which case symbolic links are not followed, by default.

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

如果您确定 cp 是 Makefile 中最后执行的内容,您也可以直接复制并粘贴它,而不用更改 Makefile。

关于macos - 在 Mac OSX 上安装 flite 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001775/

相关文章:

java - R - 错误 : IllegalArgumentException (Java): Your InputStream was neither an OLE2 stream, 也不是 OOXML 流

php - 通过composer命令在Laravel安装程序中出错

python - Scapy 安装问题。好像什么都没安装?

ruby-on-rails - “rails”不被识别为内部或外部命令

c - 使用sdl2在gitlab中构建管道失败

c - 尝试编译轻木时出现未知类型名称 ‘gpgme_decrypt_result_t’

macos - NSOpenGLView 不会清除

macos - 如何通过代码从 Mac Keychain 中删除证书?

makefile - 将 Makefile 从平面目录结构发展为子目录结构

java - 卸载嵌入式 java Mac 操作系统