《gcc五分钟系列》第十节:编译期优化选项(一)——pipe
上一节讲到,从源代码生成最终的可执行文件需要四个步骤,并且还会产生中间文件。 可是我们在对一个源文件编译的时候,直接执行g++ xxx.cpp能够得到可执行文件a.out,但是并没有中间文件啊!中间文件在哪里? 答案是,在/tmp目录下。想看吗?跟着我做。 1、在终端中执行g++ xxx.cpp。 2、在另外一个终端中执行ls /tmp/cc* 2>/dev/null。 看见什么了?什么也没有啊!说明你太慢了。 你需要在第一个命令完成前,执行第二个命令,否则什么也看不见。你大概只有不到0.1秒的时间。 写一个脚本来看吧。- #!/bin/bash
- g++ main.cpp &
- sleep 0.05
- ls --color=auto /tmp/cc*
- -pipe
- Use pipes rather than temporary files for communication between the
- various stages of compilation. This fails to work on some systems
- where the assembler is unable to read from a pipe; but the GNU
- assembler has no trouble.