Linux 文件命名.c和.cc区别编译区别
时间: 2023-05-18 14:04:59 浏览: 174
.c和.cc是不同的文件扩展名,.c是C语言源代码文件的扩展名,而.cc是C++语言源代码文件的扩展名。在编译时,.c文件将被编译为C语言程序,而.cc文件将被编译为C++程序。因此,如果你想编写C程序,你应该使用.c文件扩展名,如果你想编写C++程序,你应该使用.cc文件扩展名。
相关问题
在Linux系统中编写一个C语言程序,先使用GCC编译运行。 再重新编译该C程序,使编译出的可执行文件名为你的姓名,并在该可执行程序中包含调试信息,最后使用gdb对你zhangweixing的可执行文件进行调试 为上题中的C语言程序,编写makefile文件,然后使用makefile进行编译执行
以下是一个简单的C语言程序示例:
```c
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
```
可以使用以下命令使用GCC编译并运行该程序:
```
gcc -g -o hello hello.c
./hello
```
其中,`-g`参数表示在可执行文件中包含调试信息。
接下来,可以使用以下命令重新编译该程序,并将可执行文件命名为自己的姓名:
```
gcc -g -o zhangweixing hello.c
./zhangweixing
```
最后,可以使用以下命令使用gdb对可执行文件进行调试:
```
gdb zhangweixing
```
针对这个程序,可以编写以下的Makefile文件:
```makefile
CC=gcc
CFLAGS=-g -Wall
EXECUTABLE=zhangweixing
all: $(EXECUTABLE)
$(EXECUTABLE): hello.c
$(CC) $(CFLAGS) -o $@ $<
clean:
rm -f $(EXECUTABLE)
```
使用以下命令运行Makefile:
```
make
```
这将会编译并生成一个名为`zhangweixing`的可执行文件。
使用以下命令运行该可执行文件:
```
./zhangweixing
```
使用以下命令清除生成的可执行文件:
```
make clean
```
linux中有fun1.c,fun2.c,fun3.c,main.c,编写makefile文件使其能在main.c中调用fun1,fun2,fun3
好的,以下是makefile文件的编写方法:
```makefile
# 定义编译器
CC = gcc
# 定义编译选项
CFLAGS = -Wall -Werror
# 定义源文件和目标文件
SRCS = fun1.c fun2.c fun3.c main.c
OBJS = $(SRCS:.c=.o)
# 定义目标程序名称
TARGET = main
# 编译规则
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS)
# 每个源文件生成对应的目标文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清除规则
clean:
rm -f $(OBJS) $(TARGET)
```
解释一下每个部分:
- `CC` 是定义编译器的变量,这里使用 `gcc`;
- `CFLAGS` 是定义编译选项的变量,这里加上了 `-Wall` 和 `-Werror`,意思是开启所有警告,并将警告视为错误;
- `SRCS` 是定义源文件的变量,这里包括 `fun1.c`, `fun2.c`, `fun3.c`, `main.c`;
- `OBJS` 是定义目标文件的变量,这里将 `.c` 后缀替换为 `.o` 后得到;
- `TARGET` 是定义目标程序名称的变量,这里命名为 `main`;
- `all` 是默认的目标,即执行 `make` 命令时默认执行的内容,这里是编译 `$(TARGET)`;
- `$(TARGET)` 是目标程序,依赖于 `$(OBJS)`,即 `fun1.o`, `fun2.o`, `fun3.o`, `main.o`,这里使用 `$(CC)` 和 `$(CFLAGS)` 编译链接这些目标文件;
- `%.o: %.c` 是一条模式规则,表示每个 `.c` 文件都可以生成对应的 `.o` 文件,依赖于 `.c` 文件,使用 `$(CC)` 和 `$(CFLAGS)` 编译生成;
- `clean` 是清除目标文件和目标程序的规则,执行 `make clean` 命令时执行,使用 `rm` 命令删除目标文件和目标程序。
使用方法:
1. 将上述代码保存到名为 `Makefile` 的文件中;
2. 在终端中进入源文件所在的目录;
3. 执行 `make` 命令编译生成目标程序;
4. 执行 `./main` 命令运行目标程序;
5. 如果需要清除目标文件和目标程序,可以执行 `make clean` 命令。
阅读全文