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

如何使用ThrowTheSwitch的Unity C单元测试库解决编译链接报错问题

问题原因与解决方法

你遇到的所有报错都是链接阶段符号未找到错误,核心是编译时缺少必要的源文件,同时你的业务代码存在语法问题。

第一步:修复业务代码语法错误

你的mytest.c中if判断缺少括号,会触发编译错误,修改如下:

// 原错误写法
if idx == 42
// 修改后
if (idx == 42)

第二步:明确编译所需的所有依赖文件

你需要将三类文件同时加入编译流程:

  • 你自己的业务代码文件:mytest.c
  • 单元测试主文件:mytestMain.c
  • Unity库的实现源文件:unity.c(仅引入头文件unity.h不会编译实现逻辑,必须加入源文件)

第三步:执行编译命令

如果所有文件都在当前工作目录,直接运行以下编译命令即可:

gcc mytest.c mytestMain.c unity.c -o mytest

如果Unity的头文件和源文件存放在单独的./unity目录下,需要指定头文件搜索路径:

gcc mytest.c mytestMain.c ./unity/unity.c -I./unity -o mytest

第四步:运行单元测试

直接执行生成的可执行文件即可查看测试结果:

./mytest

可选:使用Makefile简化操作

你可以在项目目录下新建Makefile文件,内容如下:

CC = gcc
CFLAGS = -Wall -I.
TEST_TARGET = mytest

all: $(TEST_TARGET)
	./$(TEST_TARGET)

$(TEST_TARGET): mytest.c mytestMain.c unity.c
	$(CC) $(CFLAGS) $^ -o $@

clean:
	rm -f $(TEST_TARGET) *.o

后续只需执行make命令即可自动完成编译、运行测试的全流程,执行make clean可清理生成的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:09:01