'illegal option -- U' when 运行 来自 Makefile 编译 C 代码的 ar 命令

'illegal option -- U' when running the ar command from a Makefile compiling C code

我正在 运行ning macOS X Catalina 并尝试 运行 'Make' 文件,但它告诉我以下内容:

(base) charliesharpe@MacBook-Pro alterbbn_v2.2 % make

AlterBBN v2.2 - A. Arbey, J. Auffinger, K. Hickerson, E. Jenssen 2019

make  -C src/ libbbn.a
gcc -c -O3 -pipe -fomit-frame-pointer -mtune=native -ffast-math -fno-finite-math-only -fopenmp general.c
ar rcsU libbbn.a general.o; rm general.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar: illegal option -- U
usage:  ar -d [-TLsv] archive file ...
    ar -m [-TLsv] archive file ...
    ar -m [-abiTLsv] position archive file ...
    ar -p [-TLsv] archive [file ...]
    ar -q [-cTLsv] archive file ...
    ar -r [-cuTLsv] archive file ...
    ar -r [-abciuTLsv] position archive file ...
    ar -t [-TLsv] archive [file ...]
    ar -x [-ouTLsv] archive [file ...]

这是什么意思?

我对 C 还很陌生,所以我对它不太有信心,所以解决这个问题越详细越好。我有 Xcode 12.3 并使用 Macports 版本的 gcc。

这与 make 没有任何关系。 MakefileU 选项用于 ar,而 macOS 使用的 BSD ar 不支持该选项。您可以从 Makefile 中删除 U 选项而不影响最终程序,尽管通常处理这些类型的选项是 Makefile 生成工具(如 CMake 或 autotools)的工作。