亚洲必赢76net的主页变量重定义,Makefile简单入门教程

亚洲必赢76net的主页 2

并发变量重定义的状态?

一、简介

源文件与include的文本定义了同五个变量

main.c

1 #include <stdio.h>
2 #include "a.c"
3 
4 int a = 100;
5 
6 int main() {
7 
8     return 0;
9 }

a.c

 1 int a = 200; 

编写翻译命令:

gcc main.c -o main

编写翻译报错:

 亚洲必赢76net的主页 1

make命令施行时,必要一个 Makefile
文件,以告知make命令要求怎样的去编写翻译和链接程序(轻便将:管理工科程的文件,决定先编写翻译哪些文件,编写翻译顺序卡塔尔。

链接的四个公文都定义了同叁个变量

main.c

1 #include <stdio.h>
2 
3 int a = 100;
4 
5 int main() {
6 
7     return 0;
8 }

亚洲必赢76net的主页,a.c

int a = 200;

编写翻译命令:

gcc -c main.c -o main.o

gcc -c a.c -o a.o

gcc main.o a.o -o main

谈起底一步链接会报错:

 亚洲必赢76net的主页 2

二、编写法则:

对象1:指标正视  然后回车+tab键
 命令;

目的2:目的注重  然后回车+tab键
 命令;

对象n:目的注重  然后回车+tab键
 命令;

在乎:命令必得是tab键初始的。

三、Makefile演进
1、一个项目有main.c/a.c/a.h/b.c/b.h三个文件;main.c包涵a.h和b.h并动用相关函数;然后建立三个新的Makefile文件,内容如下:
main:a.o b.o
 gcc -o main a.o b.o 
a.o:a.c
 gcc -c a.c -o a.o 
b.o:b.c
 gcc -c b.c -o b.o

2、Makefile升级1
选取makefile变量:想用就用,未有项目,无需定义(引用变量使用$(obj)来含有越来越多.o文件卡塔尔国
方法:obj:=a.o b.o
那么地点的Makefile程序进级如下:
obj:=a.o b.o
main:$(obj)
 gcc -o main a.o b.o 
a.o:a.c
 gcc -c a.c -o a.o 
b.o:b.c
 gcc -c b.c -o b.o

3、Makefile升级2
通过上述多个makefile的编写翻译,项目实践是马到功成的,不过假设main.c须求引用越多文本中的函数时,是还是不是要填写那么多的编写翻译命令吗?显明那个法子不可取。
改革:makefile特殊变量和电动推导功能
知识点表达:
$@  代表目的名,
$^  代表信任文件
%  代表私下字符
%.o  代表任性.o文件
%.c  代表大肆.c文件

发表评论

电子邮件地址不会被公开。 必填项已用*标注