首页 > 解决方案 > 从编译 C 代码的 Makefile 运行 ar 命令时出现“非法选项 -- U”

问题描述

我正在运行 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。

标签: cxcodemacosmakefileunix-ar

解决方案


make这实际上与具体无关。使用macOS 使用的 BSD 不支持MakefileU选项。尽管通常处理这些类型的选项将是 Makefile 生成工具(如 CMake 或 autotools)的工作,但您可能会从该选项中删除该选项而不影响最终程序。ararUMakefile


推荐阅读