You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在根目录Makefile中引入并编译src下的test.c程序?

解决Makefile编译C程序的路径问题

1. 根目录放置Makefile的正确写法

你的test.c应该在src子目录下,根目录的Makefile直接写test.c会找不到源文件,需要指定相对路径。修改后的Makefile如下:

# 编译src下的test.c,输出文件Test放在根目录
Test: src/test.c
    gcc -o Test src/test.c

如果后续要添加更多.c文件到src目录,可以用通配符简化维护:

# 自动匹配src下所有.c文件
SRCS := $(wildcard src/*.c)
TARGET := Test

$(TARGET): $(SRCS)
    gcc -o $(TARGET) $(SRCS)

2. src目录放置Makefile的问题修正

把Makefile放在src目录时,编译生成的Test默认会存在src目录里,并非没有输出。如果想把输出文件放到根目录,修改Makefile:

Test: test.c
    gcc -o ../Test test.c

实用优化建议

  • 用Make内置变量$(CC)替代直接写gcc,提升可移植性:
    SRC_DIR := src
    TARGET := Test
    
    $(TARGET): $(SRC_DIR)/test.c
        $(CC) -o $(TARGET) $^
    
    其中$^代表所有依赖文件,简化代码。
  • 后续项目变大后,可以新增build目录存放输出文件,让目录结构更清晰。

内容的提问来源于stack exchange,提问作者SKD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 13:48:23