GCC的编译流程分为四部:
预处理(Pre-processing)->编译(compling)->汇编(Assembling)->链接(linking)
预处理:处理#include、#define、#ifdef等宏命令
编译:把预处理完的文件编译为汇编程序.s
汇编:把汇编程序.s编译为.o二进制文件
链接:把多个二进制文件.o集合链接成一个可执行文件
这种编译方式在文件比较多的时候很复杂,这个时候就可以写好一个makefile来编译
Makefile的编写
# this is make file
Hello.out:max.o min.o hello.c //Hello.out文件的组成
gcc max.o min.o hello.c -o hello.out //执行gcc语句生成.out文件
max.o:mac.c //.o文件不存在的时候执行下面gcc命令
gcc -c max.c
min.o:min.c
gcc -c min.c复制代码
main函数中的return
# include <stdio.h>
int main(int argc,char*argv[])
{
printf("hello world \n");
return 0;
}复制代码
Linux 查看命令是否执行成功
echo $? 如果输出的0,那么说明该命令执行成功
make && make install 当make命令执行后return 0的时候,才会执行make install
main函数的参数
#include <stdio.h>
int main(int argc,chat*argv[])
{
//输出的是执行该文件是的参数个数
printf("argc is %d \n",argc);
int i;
//循环输出每个参数的内容
for(i=0;i<argv;i++)
{
printf("argc[%d] is %s\n",i,argc[i]);
}
return 0;
}复制代码
最后,学习笔记如有错误,请大家指出,谢谢