gcc -E helloworld.c -o helloworld.i 指令作用
时间: 2023-06-01 16:02:15 浏览: 121
这个指令的作用是使用 GCC 编译器的预处理器,将 C 语言源代码文件 helloworld.c 进行预处理,去除注释、展开宏定义、处理条件编译等预处理指令,并将预处理后的代码保存到 helloworld.i 文件中。
相关问题
gcc -o hello ~/task/hello.c hello,world
这个命令有点小问题,应该是:
```
gcc -o hello ~/task/hello.c && ./hello
```
这个命令的作用是编译 `~/task/hello.c` 文件,并将输出的可执行文件命名为 `hello`。`&&` 是一个逻辑操作符,表示仅当编译成功后才会执行后面的命令 `./hello`,即运行 `hello` 可执行文件。最后输出的结果应该是 `hello, world`。
解释# Makefile ROOTDIR = .. include $(ROOTDIR)/Rules.make CC=$(MVTOOL_PREFIX)gcc #CC=gcc EXEC = helloworld_arm OBJS = helloworld.o all: $(EXEC) $(EXEC): $(OBJS) $(CC) -o $@ $(OBJS) clean: rm -f $(EXEC) *.o
这是一个 Makefile 文件,用于编译一个名为 helloworld_arm 的可执行文件。以下是 Makefile 文件的各个部分的解释:
1. ROOTDIR = ..:定义一个名为 ROOTDIR 的变量,其值为 "..",即上层目录。
2. include $(ROOTDIR)/Rules.make:包含名为 Rules.make 的文件,该文件中定义了编译的规则和一些变量。
3. CC=$(MVTOOL_PREFIX)gcc:定义一个名为 CC 的变量,其值为 "$(MVTOOL_PREFIX)gcc",即交叉编译器的路径。
4. #CC=gcc:注释掉一个名为 CC 的变量,其值为 "gcc",即本地编译器的路径。
5. EXEC = helloworld_arm:定义一个名为 EXEC 的变量,其值为 "helloworld_arm",即要编译的可执行文件的名称。
6. OBJS = helloworld.o:定义一个名为 OBJS 的变量,其值为 "helloworld.o",即要编译的目标文件的名称。
7. all: $(EXEC):定义一个名为 all 的目标,该目标依赖于 EXEC 变量所指定的可执行文件。
8. $(EXEC): $(OBJS):定义一个名为 $(EXEC) 的目标,该目标依赖于 OBJS 变量所指定的目标文件。
9. $(CC) -o $@ $(OBJS):定义一个生成 $(EXEC) 文件的命令,该命令使用 CC 变量所指定的编译器,链接 OBJS 变量所指定的目标文件。
10. clean: rm -f $(EXEC) *.o:定义一个名为 clean 的目标,该目标用于清理编译过程中生成的文件,包括 $(EXEC) 文件和所有 .o 文件。
阅读全文