如何编译名称以“ - ”开头的文件(连字符a.k.a.破折号或减号)?

时间:2016-12-17 14:44:29

标签: gcc clang command-line-interface hyphen

我有一个名为-.o的文件,创建时使用:

echo "int main(){}" | cc -xc -c -

如何将此文件链接到二进制文件?

该命令与:

相同
echo "int main(){}" | cc -xc -c - -o-.o

cc是默认编译器(使用gcc 4.8.4clang 800.0.42.1测试),-xc认为输入是用C语言编写的,-c生成对象file,-将stdin作为输入文件,-o-.o指定输出文件的名称。

所有这些命令都失败了:

cc -.o
cc -- -.o
cc "-.o"
cc \-.o
cc \\-.o
cc "\-.o"

有这样的错误:

cc: error: unrecognized command line option ‘--’
cc: error: unrecognized command line option ‘-.o’
cc: error: \-.o: No such file or directory

显然我可以重命名文件,但这不是重点。我想知道为什么--没有实现,如ls,cp,mv,...

1 个答案:

答案 0 :(得分:2)

怎么样:

cc ./-.o

(摘自@aschepler的评论)