昨天我在研究 FreeBSD jail。根据文档,我运行命令make buildworld
,它使用cc编译了很多文件。
在日志中,我看到了类似以下内容:
cc ... -pipe ... file.c
现在我对-pipe
旗帜很好奇。我也在手册页中搜索,但没有找到有关此标志的任何内容。
你知道这个标志到底是做什么的吗?
假设您的cc
是 Clang, 在 Clang 的更高版本中添加了一个详细的手册页,这些手册页在您的 FreeBSD 版本中不可用。-pipe
描述为:
-pipe, --pipe
Use pipes between commands, when possible
见 https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-pipe
我给Salvatore Sanfilippo(Redis的作者(发了一封电子邮件,问了上面的问题,他回复说:
您好,它只是使用 Unix 管道而不是文件,以便 "链接"编译过程所需的不同阶段。什么时候 -pipe被使用,当GCC开始发出汇编代码时,汇编程序 将开始从管道读取并发出机器代码等 四。它应该优化编译速度,但在实践中它会有所帮助 很少有AFAIK。
多亏了他。