Позвольте мне начать с того, что я не являюсь разработчиком C, и я очень мало знаю о написании реального кода на C. Я провел некоторое исследование, чтобы найти фреймворк xUnit, который я могу использовать для написания тестов для кода C, и на основе того, что я нашел, похоже, что Unity - это то, с чем я хочу пойти. Это кажется достаточно простым, но я действительно просто не знаю, что делать после загрузки zip-файла с веб-сайта Unity. Похоже, что он не имеет нормальной установки configure / make / make, и если это произойдет, я не уверен, что это то, что я должен использовать в любом случае. Это, однако, поставляется с некоторыми задачами рейка, но ни одна из них, казалось, не была какой-либо задачей "установки". В качестве последнего средства я попытался просто скопировать 3 исходных файла с моим кодом (что я действительно надеюсь, что это неправильно), но когда я пытаюсь это сделать, я получаю сообщение об ошибке, пытаясь скомпилировать мой файл c с помощью gcc, но Я думаю, что это должно работать. Вот мои настройки:
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
(я получаю похожую ошибку, когда пытаюсь скомпилировать unity.c с помощью gcc). То, что я предполагаю, означает, что код, который поставляется с единицей, требует компилятора, отличного от того, что у меня есть:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
или, возможно, Unity не совместим с 64-разрядным процессором ... (Я работаю в Mac OS 10.7.3 с процессором Intel Core 2 Duo 2,4 ГГц - еще одна вещь, которая может или не может быть относительной, это то, что У меня есть XCode версии 4.3 (4E109), а также инструменты командной строки для XCode). На данный момент я просто хватаюсь за соломинку, и я нахожусь над головой.
У меня вопрос: как правильно пройти процедуру создания сторонней библиотеки C, такой как Unity, и сделать ее доступной для моего кода C? Нужно ли мне устанавливать что-то вроде Python или Ruby или добавлять что-то к моему пути, как в Java или что-то еще? Разве не стоит просто добавить код Unity в мою работу? Я что-то не так делаю или Unity или оба? Я действительно просто хочу иметь возможность тестировать код диска C с помощью Unity. Любая помощь будет принята с благодарностью. Заранее спасибо!