C 头文件实验

实验目标

通过本次实验,了解 C 语言如何通过头文件共享方法,为 C 语言模块化开发奠定基础

实验内容

使用以下文件目录结构,实现对应功能

project

  • common
    • header
      • utils.h:声明 hello() 方法,声明并实现 test() 方法
  • src
    • main
      • main.c:调用 hello() 方法 和 test() 方法
    • utils
      • utils.c:实现一个打印 Hello from utils 的方法
  • Makefile

实验过程

  1. 安装必要的工具
    • gcc:GNU 编译器套装
    • vim:编辑器
    • make:基于 Makefile 的自动化构建工具
  2. 编写 .c 文件
  3. 编写 .h 文件
  4. 编写 Makefile
  5. 编译程序并运行

代码参考

文件编写

.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 文件

posted @ 2023-11-20 11:07  Ba11ooner  阅读(3)  评论(0编辑  收藏  举报