【发布时间】:2012-04-03 14:28:57
【问题描述】:
首先让我说我不是 C 开发人员,而且我对实际编写真实世界的 C 代码知之甚少。我一直在做一些研究,以找到一个可以用来为 C 代码编写测试的 xUnit 框架,根据我的发现,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)
或者说 unity 可能与 64 位处理器不兼容...(我正在使用 2.4 GHz Intel Core 2 Duo 处理器的 Mac OS 10.7.3 上运行 - 另一件可能相关也可能不相关的事情是我有 XCode 版本 4.3 (4E109) 以及 XCode 的命令行工具)在这一点上,我只是抓住了稻草,而且我的头脑已经过时了。
我的问题是,获取第三方 C 库(例如 Unity)并使其可用于我的 C 代码的正确流程是什么?我是否需要在 Python 或 Ruby 中安装一些东西,或者在我的路径中添加一些东西,比如在 Java 或其他东西中?不应该只是将统一的代码放入我的工作中吗?我做错了什么还是Unity或两者兼而有之?我真的只想能够使用 Unity 测试驱动 C 代码。任何帮助将不胜感激。提前致谢!
【问题讨论】:
标签: c gcc osx-lion unity-test-framework