讓我首先說我不是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