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

已正确包含文件却出现‘undefined reference to’函数错误求助

解决"undefined reference to `checkFile'"链接错误及相关疑问

一、解决链接错误

你的问题出在Makefile没有将fle.c纳入编译链接流程。当前规则只编译了main.c,链接时找不到checkFile函数的实现代码,因此抛出未定义引用错误。

修改Makefile有两种可行方式:

方式1:直接编译所有源文件

CC = gcc
CFLAGS  = -g -Wall
TARGET = main
# 包含所有需要编译的源文件
SRC_FILES = main.c fle.c

all: $(TARGET)

$(TARGET): $(SRC_FILES)
    $(CC) $(CFLAGS) -o $(TARGET) $(SRC_FILES)

clean:
    $(RM) $(TARGET)

方式2:分步编译目标文件(更高效)

这种方式会将每个.c文件编译成.o目标文件,修改单个文件时只需重新编译对应目标,节省重复编译时间:

CC = gcc
CFLAGS  = -g -Wall
TARGET = main
# 生成的目标文件列表
OBJS = main.o fle.o

all: $(TARGET)

# 链接所有目标文件生成可执行文件
$(TARGET): $(OBJS)
    $(CC) $(CFLAGS) -o $(TARGET) $(OBJS)

# 明确每个目标文件的依赖关系
main.o: main.c fle.h
fle.o: fle.c fle.h

clean:
    $(RM) $(TARGET) $(OBJS)

修改后重新执行make,链接错误即可解决。

二、关于错误信息中的引号格式

错误信息里的checkFile'是GCC的标准输出格式——左侧用反引号、右侧用单引号包裹函数名,目的是突出显示未找到的符号,这只是输出风格问题,完全不影响编译过程,无需在意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:31:04