让我首先说我不是C开发人员,而且我对编写真实世界C代码知之甚少。我一直在做一些研究,以找到一个xUnit框架,我可以用它来编写C代码的测试,并根据我发现的结果,似乎Unity是我想要的。这似乎很简单,但我真的不知道在从Unity网站下载zip文件后该怎么办。它似乎没有正常的配置/ make/make安装,如果是这样,我不知道这是我应该用什么。但是,它确实带有一些rake任务,但没有一个似乎是任何“安装”任务。作为最后的手段,我试图用我的代码复制3个源文件(我真的希望这不是正确的做法),但是当我尝试使用gcc编译我的c文件时出现错误,但是我认为这应该工作。这里是我的设置:如何使用“unity”在Mac(Lion)上单元测试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位处理器兼容......(我上运行带有2.4 GHz Intel Core 2 Duo处理器的Mac OS 10.7.3 - 另一件可能或可能不会相关的事情是我有XCode版本4.3(4E109)以及用于XCode的命令行工具)在这一点上,我是只是抓着吸管,而我正在头顶。
我的问题是,通过采用Unity等第三方C库并将其提供给我的C代码的正确过程是什么?我是否需要安装Python或Ruby之类的东西,或者像Java或其他东西一样在我的路径中添加内容?不应该把统一的代码放在我的工作中?我做错了什么,或者是Unity还是两者兼而有之?我真的只想使用Unity来测试驱动器C代码。任何帮助将不胜感激。提前致谢!
我试过'gcc * .c -o mytest',但我仍然得到“ld:symbol(s)not found for architecture x86_64”错误。至于安装它,我不知道如何达到这一点,因为我似乎无法建立它。 – 2012-03-19 04:26:51