syb*_*0rg 4 macos installation makefile static-libraries flite
我已经下载了最新的flite源代码分发版,并进行了通常的安装过程.
$ ./configure
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将库安装到我的系统时,我遇到了一个奇怪的错误.
$ 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
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
cpMac使用的BSD 与cp大多数Linux发行版的GNU 之间存在一些细微差别.
考虑以下man cp来自linux盒子的片段:
-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
Run Code Online (Sandbox Code Playgroud)
所以它基本上要做的是"复制以下路径,如果它们是链接,只需复制链接,而不是底层文件."
该p选项存在于Mac下,等同于Linux行为.d但是,该选项不存在.
我试图找出一种方法来模仿Mac上的"复制链接,而不是目标"的行为,cp据我所知,没有令人愉快的方法来做到这一点.
幸运的是,有一项重要的工作.从man cpMac下:
除非设置-R标志,否则始终遵循符号链接,在这种情况下,默认情况下不遵循符号链接.
换句话说,因为我们知道我们只是复制文件,所以您只需用d标志替换该标志即可R.这种行为在技术上是不同的(非常不同),但在这种特定情况下无关紧要.您需要找到cpMakefile中使用的标志(希望在CP文件顶部的变量中)并简单地更改它们.
如果您确定这cp是Makefile中最后要执行的操作,您也可以复制并粘贴它,而不是更改Makefile.
| 归档时间: |
|
| 查看次数: |
1002 次 |
| 最近记录: |