C 头文件实验
实验目标
通过本次实验,了解 C 语言如何通过头文件共享方法,为 C 语言模块化开发奠定基础
实验内容
使用以下文件目录结构,实现对应功能
project
- common
- header
- utils.h:声明 hello() 方法,声明并实现 test() 方法
- header
- src
- main
- main.c:调用 hello() 方法 和 test() 方法
- utils
- utils.c:实现一个打印 Hello from utils 的方法
- main
- Makefile
实验过程
- 安装必要的工具
- gcc:GNU 编译器套装
- vim:编辑器
- make:基于 Makefile 的自动化构建工具
- 编写
.c
文件 - 编写
.h
文件 - 编写 Makefile
- 编译程序并运行
代码参考
文件编写
.c
文件编写
main.c
#include <stdio.h>
#include "../../common/header/utils.h"
int main(){
printf("Hello from main\n");
hello();
printf("%d from test\n", test());
return 0;
}
utils.c
#include <stdio.h>
#include "../../common/header/utils.h"
void hello(){
printf("Hello from utils\n");
}
.h
文件编写
#ifndef UTILS_H
#define UTILS_H
void hello();
int test(){
return 1;
}
#endif
Makefile 编写
main: main.o utils.o
gcc utils.o main.o -o main
main.o: src/main/main.c
gcc -c src/main/main.c -o main.o
utils.o: src/utils/utils.c
gcc -c src/utils/utils.c -o utils.o
编译与运行
make
./main
其他
上面给出了 Linux 环境下无 IDE 如何编写带头文件的 C 项目
此处再给出 CLion IDE 中如何配置以实现类似的效果,只需在 CMakeLists.txt 中进行如下配置即可
CMakeLists.txt 配置参考
cmake_minimum_required(VERSION 3.19)
project(c_project_example)
set(CMAKE_CXX_STANDARD 14)
add_executable(main src/main/main.c src/utils/utils.c common/header/utils.h)
知识补充:CMake
在本次实验中可以简单理解为 Makefile 自动化生成工具
实际上 CMake 是 一个跨平台的编译(Build) 工具, 可以用简单的语句来描述所有平台的编译过程。 CMake 能够输出各种各样的 makefile 或者 project 文件