首先让我说我不是 C 开发人员,而且我对实际编写真实世界的 C 代码知之甚少。我一直在做一些研究,以找到一个 xUnit 框架,我可以用它来为 C 代码编写测试,并且基于我发现它看起来像Unity是我想一起去的那个。看起来很简单,但是从 Unity 的网站下载 zip 文件后,我真的不知道该怎么做。它似乎没有正常的配置/制作/制作安装,如果有的话,我不确定这是否是我应该使用的。然而,它确实附带了一些 rake 任务,但这些任务似乎都不是任何类型的“安装”任务。作为最后的手段,我尝试将 3 个源文件与我的代码一起复制(我真的希望这不是正确的做法),但是当我尝试使用 gcc 编译我的 c 文件时出现错误,但是我认为这应该有效。这是我的设置:
src/
mycode.c
unity.c
unity.h
unity_internals.h
这是 mycode.c 的源代码
/* mycode.c */
#include "unity.h"
void test_sample(void)
{
TEST_ASSERT_EQUAL_INT(0, 0);
}
当我跑步时,gcc mycode.c
我得到:
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
"_UnityAssertEqualNumber", referenced from:
_test_sample in ccyHByv6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
(当我尝试使用 gcc 编译 unity.c 时出现类似错误)。我认为这意味着统一附带的代码需要与我所拥有的编译器不同的编译器:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
或者可能统一与 64 位处理器不兼容......(我在 Mac OS 10.7.3 上运行,配备 2.4 GHz Intel Core 2 Duo 处理器 - 另一件可能或可能不相关的事情是我已经获得了 XCode 版本 4.3 (4E109) 以及 XCode 的命令行工具)在这一点上,我只是抓住了最后一根稻草,而且我的头顶上。
我的问题是,获取第三方 C 库(例如 Unity)并使其可用于我的 C 代码的正确过程是什么?我是否需要在 Python 或 Ruby 中安装一些东西,或者在我的路径中添加一些东西,比如在 Java 或其他东西中?不应该只是将统一的代码放入我的工作中吗?我做错了什么还是Unity或两者兼而有之?我真的只想能够使用 Unity 测试驱动 C 代码。任何帮助将不胜感激。提前致谢!