c check的安装和使用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值