当前位置: 首页 > news >正文

cmake和makefile示例

文件目录结构

在这里插入图片描述

cmake示例


# 最低版本
cmake_minimum_required(VERSION 2.8)# 项目名称
project(sm4-test)# 引入头文件路径
include_directories(./include)# 获取某目录下所有的源文件
aux_source_directory(src SRC_DIR)
aux_source_directory(test TEST_DIR)# 生成可执行文件
add_executable(a.out ${SRC_DIR} ${TEST_DIR})

makefile示例

# 定义输出可执行文件名
OUT := a.out# 指定源文件路径
INCLUDE_DIR := include
SRC_DIR := src
TEST_DIR := test# 使用 wildcard 找到所有 .c 文件
SRCS := $(wildcard $(SRC_DIR)/*.c) $(wildcard $(TEST_DIR)/*.c)# 将源文件路径映射到目标文件路径:src/sm3.c -> obj/src/sm3.o, test/main.c -> obj/test/main.o
OBJ_DIR := obj
OBJS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(SRCS))# 编译器
CC := gcc# 编译器标志(包含头文件目录)
CFLAGS := -I$(INCLUDE_DIR)# 默认目标
$(OUT): $(OBJS)$(CC) $^ -o $@# 模式规则:将任意 .c 文件编译成对应路径的 .o 文件
$(OBJ_DIR)/%.o: %.c@mkdir -p $(dir $@) # 确保目标目录存在$(CC) $(CFLAGS) -c $< -o $@# --- 便捷目标 ---
.PHONY: clean rebuild all# all 目标,构建主程序
all: $(OUT)# 清理:删除可执行文件和整个 obj 目录
clean:$(RM) -r $(OUT) $(OBJ_DIR)# 重新构建
rebuild: clean all
http://www.lryc.cn/news/605798.html

相关文章:

  • 链表算法题
  • NTLDR源代码分析之从GetSector函数到blread函数
  • vue3.0 + TypeScript 中使用 axios 同时进行二次封装
  • Coze开源版本地部署指南
  • 界面组件DevExpress WPF中文教程:网格视图数据布局 - 数据单元格
  • [源力觉醒 创作者计划]_文心4.5开源测评:国产大模型的技术突破与多维度能力解析
  • nuxt3: trpc-nuxt和sqlite导致的503错误
  • [免费]基于Python的招聘职位信息推荐系统(猎聘网数据分析与可视化)(Django+requests库)【论文+源码+SQL脚本】
  • C++11原子操作实现公平自旋锁
  • 如何快速部署主数据管理解决方案?
  • C# XML 文件
  • 深度学习入门:用pytorch跑通GitHub的UNET-ZOO项目
  • mapper.xml中的<include>是什么
  • 摄像头模块的调焦原理
  • uni-app用css编写族谱树家谱树
  • 量子安全:微算法科技(MLGO)基于比特币的非对称共识链算法引领数字经济未来
  • 本地通信的选择:为什么组播比广播更适合多进程协作?
  • NAS、DAS、SAN三种存储介绍
  • [12月考试] E
  • 计算机网络学习--------三次握手与四次挥手
  • 深度学习G5周:Pix2Pix理论与实战
  • docker运行时目录/var/lib/docker 学习
  • npm从入门到精通一篇全
  • 蚂蚁财富招Java高级研发
  • java笔记——ConcurrentLinkedQueue
  • LangGraph底层原理与基础应用入门
  • Visual Studio调试技巧与函数递归详解
  • ADW300 物联网仪表:引领能源计量智能化变革
  • 电力系统功率与同步发电机运行特性详解
  • Qwen3-30B-A3B-Thinking-2507 推理模型深度评测