版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starter_____/article/details/90736834
一、源文件的编写
say_hello.h
#ifndef _SAY_HELLO_H
#define _SAY_HELLO_H
void say_hello(char *str);
#endif
say_hello.c
#include <stido.h>
#include “say_hello.h”
void say_hello(char *str)
{
printf(“%s”,str);
}
hello.c
#include <stdio.h>
#include “say_hello.h”
int main()
{
say_hello(“hello world!\n”);
}
二、由源文件生成对应的目标文件和可执行文件
(1)采用一步编译
$ gcc hello.c say_hello.c -o hello
(2)采用分步编译
思路:
- 编译每一个.c文件,得到.o的目标文件;
- 将每一个.o的目标文件链接成一个可执行的文件;
$ gcc -c say_hello.c -o say_hello.o
$ gcc -c hello.c -o hello.o
$ gcc hello.o say_hello.o -o hello
如果对项目目录结构进行调整如下
那么,命令将改动如下:
(1)采用一步编译
$ gcc hello.c functions/say_hello.c -o hello-Ifunctions
(2)采用分步编译
思路:
- 编译每一个.c文件,得到.o的目标文件;
- 将每一个.o的目标文件链接成一个可执行的文件;
$ gcc -c functions/say_hello.c -o say_hello.o -Ifunctions
$ gcc -c hello.c -o hello.o -Ifunctions
$ gcc hello.o say_hello.o -o hello