为什么ar在创建静态库时会给出警告?

Why ar gives a warning when creates a static library?

不明白为什么ar在创建库的时候会提示

我这样做:

$ cat foo.c
int foo(int a) {
        return a + 1;
}
$ clang -c foo.c
$ ar r foo.a foo.o
ar: warning: creating foo.a
$ 

r 是与 ar 一起使用的正确命令吗?为什么我会收到警告?

我正在使用 clangFreeBSD。不确定 ar 是来自 clang 还是来自 FreeBSD.

如果输出文件不存在,您应该使用 c 修饰符。来自 the man page:

c

Create the archive. The specified archive is always created if it did not exist, when you request an update. But a warning is issued unless you specify in advance that you expect to create it, by using this modifier.

所以请尝试 ar rc foo.a foo.o 让警告静音。