Linux 下的C编程基础篇(1)
1:编译语法
/* hello.c */
#include"stdio.h"
#include"stdlib.h"
main(int argc,char **argv)
{
fprintf(stdout,"Hello, I am a test procedure\n");
}
[root@kcn-110]#gcc -c hello.c
-c:只输出目标代码
[root@kcn-110]#gcc -o hello hello.c
-o:输出名字为hello的可执行程序
[root@kcn-110]#gcc -g -o hello hello.c
-g:输出的可执行程序带有调试信息
2:Makefile
(1) head1.h
/* head1.h */
#ifndef INC_HEAD1_H
#define INC_HEAD1_H
void print1(char *c);
#endif
(2) print1.c
/* print1.c */
#include"head1.h"
#include"stdio.h"
void print1(char *c)
{
fprintf(stdout,"%s\n",c);
}
(3) head2.h
/* head2.h */
#ifndef INC_HEAD2_H
#define INC_HEAD2_H
void print2(char *c);
#endif
(4) print2.c
/* print2.c */
#include"head2.h"
#include"stdio.h"
void print2(char *c)
{
fprintf(stdout,"%s\n",c);
}
(5) main.c
/* main.c */
#include"head1.c"
#include"head2.c"
main(int argc,char **argv)
{
print1("hello, I am the first print string");
print2("hello, I am the second print string");
}
(6) Makefile
/* Makefile */
main:main.o print1.o print2.o
gcc -o main main.o print1.o print2.o
main.o:main.c head1.h head2.h
gcc -c main.c
print1.o:print1.c head1.h
gcc -c print1.c
print2.o:print2.c head2.h
gcc -c print2.c clean: rm *.o
(7) another Makefile
/* another Makefile */
main:main.o print1.o print2.o
gcc -o $@ $^
main.o:main.c head1.h head2.h
gcc -c $<
print1.o:print1.c head1.h
gcc -c $<
print2.o:print2.c head2.h
gcc -c $<
Makefile 的格式是:
目标文件:依赖文件
(TAB)规则
$@:目标文件
$^:所有的依赖文件
$<:第一个依赖文件
. 。 o O