【第一个Hello Word程序】
1, 在桌面上新建一个main.c文件,文件编辑器打开并敲上C语言代码
2, 在终端中输入 cd Desktop
gcc main.c
./a.out //生成的a.out是可执行文件
gcc main.c -o main //指定编译好的文件的名
gcc -wall main.c //意思就是编译的时候打开所有的警告有利于更改程序中的bag
【第二个两个程序组成一个程序】
Main.c
#include<stdio.h>
Int main()
{
Printf(“Hello word !!”);
Tianshuai();
}
Ta.c
#include<stdio.h>
Void main()
{
Printf(“Thank you !!\n”);
}
编译: gcc –c main.c ta.c
Gcc –o main main.o ta.o
然后执行: ./main
【第三个,加入链接库】
#include "stdio.h"
#include"math.h"
int main()
{
float value;
value=sin(3.14/2);
printf("%f",value);
}
-lm 表示libm.so或 libm.a 这个函数档案
编译时候:gcc -lm sin.c //-l 表示加入某个函数库
或者:gcc sin.c -lm -L/lib -L/usr/lib// -L /lib 跟-L /usr/lib指明函数库路径
经验证:不加#include“math.h”是不可行的
其中 include的文件放在 /usr/include目录下 -I /usr/include
【四,揭秘强大的GCC】
1),gcc main.c //生成 a.out
2),gcc -c main.c //生成 main.o 但是不产生binary 执行档
3),gcc -O main.c -c //生成main.o 并进行最优化
4),gcc –c main.c ta.c
gcc –o main main.o ta.o
//将两个文件编译成一个执行时的步骤
【五,重要的 make命令】
1),四个文件
Main.c
#include <stdio.h>
int main(void)
{
haha();
sin_value();
cos_value();
}
Haha.c
#include <stdio.h>
int haha(void)
{
printf("HaHa! I'm the King of the world\n");
}
Sin_value.c
#include <stdio.h>
#include <math.h>
int sin_value(void)
{
float value;
value = sin ( 3.14 / 4 );
printf ("%f\n",value);
}
Cos_value.c
#include <stdio.h>
#include <math.h>
int cos_value(void)
{
float value;
value = cos ( 3.14 / 4 );
printf ("%f\n",value);
}
2),编译:gcc -c main.c haha.c sin_value.c cos_value.c
生成四个文件 main.o haha.o sin_value.o cos_value.o
Gcc -o main main.o haha.o sin_value.o cos_value.o -lm //放后边
生成 main 主文件
执行:./main
3),第二种编译:gcc -lm main.c haha.c sin_value.c cos_value.c
生成 a.out 文件
或者:gcc -lm main.c haha.c sin_value.c cos_value.c -o main
生成自定义名字的 main 文件
4),make命令的使用
新建:makefile文件
写入:main:main.o haha.o sin_value.o cos_value.o //目标文件
[Tab 空格] gcc -o main main.o haha.o sin_value.o cos_value.o –lm//命令
执行:make
结果:生成main main.o haha.o sin_value.o cos_value.o
第二种:
main:main.c haha.c sin_value.c cos_value.c
gcc -lm main.c haha.c sin_value.c cos_value.c -o main
执行:make
生成:main 一个文件
5),makefile语法
语法一:标的(target): 目标文件1 目标文件2
<tab> gcc -o 欲建立的执行文件目标文件1 目标文件2–lm
语法二:标的(target): 目标文件1 目标文件2
<tab> gcc –lm 目标文件1 目标文件2 -o 欲建立文件
Targer 作用是:标注命令的名称
Make target //执行命令
例:
Clean
<tab> rm -f main
执行 make main //删除 main文件
】 makefile里面还可以加入变量(可以是文件内的,可以是外部命令创建的)
6), usr/local/etc //存放设定档
Usr/local/bin //存放执行档
Usr/local/lib //存放函数库
Usr/local/man //存放在线说明档