c check的安装和使用

原创 2015年11月17日 18:44:59

c语言单元测试工具 check

安装很简单,

下载,解压

安装三部曲:configure,make,make install

安装完的库文件在/usr/local/lib下面


测试用例:

参考这个链接

http://blog.chinaunix.net/uid-20147410-id-85936.html

但其中makefile有问题的:

test_add.o: In function `test_add':
test_add.c:(.text+0x69): undefined reference to `_ck_assert_failed'
collect2: ld 返回 1


原因是,连接的时候找到的库目录不对。

更正的是:

makefile里面这一行:

gcc -I include $^ -o myprog -L/usr/local/lib/ -lcheck

这样链接的时候,找到正确的库位置,

然后再编译,运行,就可以了

[root@localhost utest]# ./myprog 
Running suite(s): Add
./myprog: symbol lookup error: ./myprog: undefined symbol: _ck_assert_failed
0%: Checks: 1, Failures: 0, Errors: 1
unit_test/test_add.c:4:E:add:test_add:0: (after this point) Early exit with return value 127


但是好像还有问题:

[root@localhost utest]# ldd myprog
linux-vdso.so.1 => (0x00007fffbb36a000)
libcheck.so.0 => /usr/lib64/libcheck.so.0 (0x00007f50092d7000)
libc.so.6 => /lib64/libc.so.6 (0x0000003440800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003441000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003440000000)

看了一下,原来/usr/lib64下面的libcheck里面真的没有这个符号

所以,从/usr/local/lib下面,把正确的文件拷贝过去,然后再运行


[root@localhost utest]# ll /usr/lib64/libcheck.so*
lrwxrwxrwx. 1 root root    17 3月   9 2015 /usr/lib64/libcheck.so -> libcheck.so.0.0.0
lrwxrwxrwx. 1 root root    17 3月   9 2015 /usr/lib64/libcheck.so.0 -> libcheck.so.0.0.0
-rwxr-xr-x. 1 root root 29440 11月 11 2010 /usr/lib64/libcheck.so.0.0.0
[root@localhost utest]# objdump -t /usr/lib64/libcheck.so|grep _ck_assert_failed
[root@localhost utest]# cp /usr/local/lib/libcheck.so.0.0.0 /usr/lib64/libcheck.so.0.0.0 

[root@localhost utest]# ./myprog 


Running suite(s): Add
0%: Checks: 1, Failures: 1, Errors: 0
unit_test/test_add.c:6:F:add:test_add:0: god, 2+3!=5

相关文章推荐

Linux下sonarqube安装使用方法(代码check工具)

背景 1、   虚拟机CentOS release 7.2 2、   sonarqube-6.2 3、   sonar-scanner-2.8   一、  sonarqube-6.2的安装 ...

my c code check a num whether it is a int

  • 2017年07月29日 16:58
  • 724B
  • 下载

if_changed_rule/cc_o_c/any-prereq/arg-check

Makefile 对应内核版本:2.6.35.13 在 scripts/Makefile.build 的 86 行看到 builtin-target 的定义: 1 builtin-t...
  • lcw_202
  • lcw_202
  • 2011年08月04日 19:43
  • 1608

Check.c

#include "macro.h"static UINT4 count = 1;void Show(RoadInfor *proadInfor){ if(NULL == proadInfor->ro...
  • xiasui
  • xiasui
  • 2011年04月25日 16:17
  • 117

Redis源码分析(十)--- testhelp.h小型测试框架和redis-check-aof.c日志检测

分析了一段时间的struct结构体的redis代码,越到最后越发现其实很多代码都是大同小异的。在struct包中还有1,2个文件还没分析,是关于set集合的一些东西,就放在下次分析好了,在选择下个分析...

《Linux内核Makefile分析》之 if_changed_rule/cc_o_c/any-prereq/arg-check

http://blog.sina.com.cn/s/blog_87c063060101l25q.html if_changed_rule/cc_o_c/any-prereq/...
  • zxygww
  • zxygww
  • 2015年12月10日 14:35
  • 388

C 1.pass_list_check 2.某个文件中是否存在特定的字符串 3.replace

pass_list check char *pass_list[] = { "/images/", "/cgi/cgi_wan_multiple.js", "/chglang....

静态代码分析工具-jenkins应用2(astyle,nsiqcppstyle,c_style_check,cpplint and cUnit,cppUnit,c++test)

一. c/c++代码格式(code style)工具        代码格式工具,对于java来说,有checkstyle,这个工具真的很是强大也很好用,配置非常的方便;对于c/c++代码来说,工具...

openssl开源程序dh算法解析之dh_check.c

/*检查dh自身参数,dh公钥大小是否合适*/#include #include "cryptlib.h" #include //自定义OpenSSL 实现大数管理的结构及其函数 #include...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c check的安装和使用
举报原因:
原因补充:

(最多只允许输入30个字)