我是CUnit的新手,我正在尝试运行一个示例代码来测试CUnit是否有效。
我有三份文件。
最大小时
#ifndef MAX_H_
#define MAX_H_
extern int maxi(int, int);
#endif /* MAX_H_ */
最大c
#include "max.h"
int maxi (int i1, int i2)
{
return (i1 > i2) ? i1 : i2;
}
并测试最大c
#include <stdio.h>
#include <CUnit/CUnit.h>
#include <CUnit/Basic.h>
#include "max.h"
int init_suite(void)
{
return 0;
}
int clean_suite(void)
{
return 0;
}
void testMax(void)
{
CU_ASSERT(maxi(1,2) == 2);
CU_ASSERT(maxi(3,2) == 3);
CU_ASSERT(maxi(2,4) == 4);
}
int main()
{
CU_pSuite pSuite = NULL;
if (CUE_SUCCESS != CU_inizialize_registry())
return CU_get_error();
pSuite = CU_add_suite("Suite di prova", init_suite, clean_suite);
if (NULL == pSuite)
{
CU_cleanup_registry();
return CU_get_error();
}
if (NULL == CU_add_test(pSuite, "Test max", testMax))
{
CU_cleanup_registry();
return CU_get_error();
}
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return CU_get_error();
}
当我构建时,会收到一个警告和一个错误:
(警告)警告:函数'CU_日化注册表'的隐式声明在C99中无效
[-Wimplicit函数声明]
如果成功了!=对注册表进行日化处理()
(错误)ld:找不到架构x86_64的符号
CU_inizialize_registry
怎么了?我不明白。你能帮我吗?
谢谢
更多信息:
MacOS 10.12.3、Eclipse、cunit 2.1-3
最佳答案
那CU_initialize_registry
而不是CU_iniZialize_registry
(t而不是z)呢?