1

./configure在构建使用 autoconf 的 OpenFST 包之前运行该命令。检查ar接口时脚本失败:

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... unknown
configure: error: could not determine ar interface

这似乎与这个问题有关,但我不明白如何使脚本使用正确的 MacOS 文件以便配置工作。

4

2 回答 2

3

查看 config.log 内部,发现问题与使用位于 in而不是in 中的错误ar和错误有关。ranlib/opt/local/bin//usr/bin

运行这个解决了这个问题:

sudo mv /opt/local/bin/ranlib /opt/local/bin/ranlib-backup-2019-02-09
sudo mv /opt/local/bin/ar /opt/local/bin/ar-backup-2019-02-09

基于此讨论中的建议: https ://github.com/commercialhaskell/stack/issues/4380

于 2019-02-09T17:10:30.620 回答
0

移动任何系统文件听起来很麻烦。我建议执行以下操作,这在我的情况下有效(在 MacOS 下使用 gcc-6/gcc-8 进行 appveyor 测试):

# work around bugs in this environment
export TMPDIR=$PREFIX/tmp  # was set to something below the user

# have a folder with the files we're interested in linked ...
mkdir -p $PREFIX/tmp/sysbin
ln -s $PREFIX/tmp/sysbin/ar /usr/bin/ar
ln -s $$PREFIX/tmp/sysbin/ranlib /usr/bin/ranlib

# and let it be used
export PATH=$PREFIX/tmp/sysbin:$PATH

../configure
于 2022-01-04T21:22:22.690 回答