PA0ysys南京大学环境配置中关于gcc和Makefile
1.安装gcc
作pa0 写着10h 但是为感觉作了一周感觉
每一步都和教材不太一样
如果出现
这种问题 是需要还一个源
参考
https://www.zhihu.com/question/521699205/answer/3267380382?utm_id=0
然后去下载相应版本ubuntu的源,将对于内容拖入sources.list中。
2.设置ubuntu按照如图
顺利完成换源。
二.Makefile
h.c
1 #include<stdio.h>
2 int main(){
3 printf("hello world \n");
4 return 0;
5 }
~
Makefile
Cxx=gcc #编译器
2 TARGET=hello #这个Makefile默认要生成的目标,不存在就要生成
3 OBJ = h.o #对象
4 CxxFALGS=-c -Wall #开启全部警告提示
5
6 $(TARGET): $(OBJ)
7 $(Cxx) -o $(TARGET) $(OBJ)
8 # 由于不存在hello这个目标。要依赖OBJ来生成 当第10行生成完成之后,第7行生存hello
9
10 h.o:h.c
11 $(Cxx) -c h.c
12 #-c只是编译不连接
13 # 这里生成OBJ 第6行没有OBJ 一行一行向下到这里生成第13行生存hello.o hello.o 依赖 h.c
14
15 clean:
16 rm -f hello
~
注释十分详细就,不对代码进行解释了。
备注:
gcc h.c 会生成a.out
gcc -o hello h.c 会直接生存hello可执行文件,不会生成.o文件
gcc -c h.c 会生存h.o 不会生存可执行文件,而且如果是asd.c就是生存asd.o
如果多个文件,例如main.c 中引用h.c g.c f.c 3个.c文件,利用gcc -c只对单个.c文件编译 不连接
最后需要用gcc *.o -o main 将所有的.o文件连接起来,生成一个main执行文件