***单个文件编译***
#生成hello.o
$ gcc -c hello.c
#生成可执行文件hello
$ gcc -o hello hello.o
直接编译:
$ gcc -o hello hello.c
***多个文件编译***
多个文件编译使用Makefile
编译hello.c文件
hello.c
#include <stdio.h>
int main (void)
{
printf("hello world\n");
return 0;
}
直接在命令行编译:
分步编译:#生成hello.o
$ gcc -c hello.c
#生成可执行文件hello
$ gcc -o hello hello.o
直接编译:
$ gcc -o hello hello.c
***多个文件编译***
多个文件编译使用Makefile
编译文件main.c和hello.c
main.c
extern int say_hello(void);
int main(void)
{
say_hello();
return 0;
}
hello.c
#include <stdio.h>
int say_hello (void)
{
printf("hello\n");
return 0;
}
Makefile可以这样写:
CC = gcc
main: main.o hello.o
$(CC) -o main main.o hello.o -Wall -lm
clean:
rm -f main *.o
或者
CC=gcc
LIBS=-lm
OBJS=main.o hello.o
CFLAGS=-Wall
main: $(OBJS)
$(CC) -o $@ $(OBJS) $(LIBS) $(CFLAGS)
clean:
rm -f main $(OBJS)
其中$(CC) -o $@ $(OBJS) $(LIBS) $(CFLAGS)中
$@表示target
,这里为main。