看到一句命令,有些看不懂,求解释一下:echo "" | gcc - -E -v

little_tony 2014-07-14 04:32:13
命令出处:http://bbs.chinaunix.net/thread-4070112-1-1.html

echo "" | gcc - -E -v
这一句命令原文是来查看gcc的环境变量。有几点看不懂:
1,gcc - 后面的单独那一个横杆“-”,没有接选项,这是表示什么意思呢?
2,echo “”,这个是不是输出一个空值?
3,整句命令的意思是什么?echo是要给gcc传递什么信息呢?
急求胜解,不盛感激!
...全文
793 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2014-07-15
  • 打赏
  • 举报
回复
第一条说错了 我测试一下: $ gcc - gcc: error: -E or -x required when input is from standard input 似乎是标准输入内容给gcc的意思。 你还可以试试 echo "#include <stdlib.h>" | gcc - -E
little_tony 2014-07-15
  • 打赏
  • 举报
回复
[quote=引用 3 楼 buyong 的回复:] 1. gcc -E -include file 单纯一个“-”,跟 -include file有关系 吗?盼解释。 2 是,echo "" | gcc -E - 就输出内部包含的头文件 能不能解释一下这句命令的细节,比如说先执行怎么样,再执行怎么样?因为我看不出来。 谢谢!
buyong 2014-07-14
  • 打赏
  • 举报
回复
引用 楼主 little_tony 的回复:
命令出处:http://bbs.chinaunix.net/thread-4070112-1-1.html echo "" | gcc - -E -v 这一句命令原文是来查看gcc的环境变量。有几点看不懂: 1,gcc - 后面的单独那一个横杆“-”,没有接选项,这是表示什么意思呢? 2,echo “”,这个是不是输出一个空值? 3,整句命令的意思是什么?echo是要给gcc传递什么信息呢? 急求胜解,不盛感激!
1. gcc -E -include file 如果指定了`-E'选项, GCC只进行预处理工作.下面的某些选项必须和`-E'选项一起才有意义,因为他们的输出结果不能用于编译. -include file  在处理常规输入文件之前,首先处理文件file,其结果是,文件file的内容先得到编译. 命令行上任何`-D'和`-U'选项永远在`-include file'之前处理, 无论他们在命令行上的顺序如何.然而`-include'和`-imacros'选项按书写顺序处理.  2 是,echo "" | gcc -E - 就输出内部包含的头文件 3 整句大概是先执行gcc -v,然后执行echo "" | gcc -E - http://wenku.baidu.com/link?url=cGmZ2M6_2JwdhdVT6kvZvWaPalkEKuo33qgB-d3l7ETiY7G0nr4LXTp1eD1JcDpqCJOv5zSUyxLs6_6JaxRb8TsQefDQTnPm6XWYJ2DFtMK
colddown 2014-07-14
  • 打赏
  • 举报
回复
单个横杠一般指从stdin读输入而非从文件读。echo的作用就是传个空文件给gcc
李迟 2014-07-14
  • 打赏
  • 举报
回复
我只知道echo ""是把空文件(叫空字符串也行)传给gcc,gcc单独的“-”用法不太懂。 说实话,这个命令我真没用过。

19,621

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧