Linux —— C语言编程(多文件)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)采用分步编译

思路:

  1. 编译每一个.c文件,得到.o的目标文件;
  2. 将每一个.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)采用分步编译

思路:

  1. 编译每一个.c文件,得到.o的目标文件;
  2. 将每一个.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

猜你喜欢

转载自blog.csdn.net/starter_____/article/details/90736834
今日推荐