c check的安裝和使用

2021-07-07 06:36:40 字數 1892 閱讀 1297

c語言單元測試工具 check

安裝很簡單,

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

安裝完的庫檔案在/usr/local/lib下面

測試用例:

但其中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

Kdevelop的安裝和使用

一般而言,用kdevelop程式設計大體要經歷如下幾個步驟。程式設計是比較複雜的,很難一次成功,這些步驟可能要反覆進行多次。第一步,新建工程 可以通過選單操作啟動相應的嚮導程式,借助它完成工程的初建工作。project new project 在新建工程過程中,主要需要指定工程檔案儲存位置 工程名稱...

TCPCopy的安裝和使用

官網位址 tcpcopy 有傳統架構和新架構,新架構比較複雜,一般情況下傳統架構就可以了。頭部資訊給tcpcopy client,以完成tcp互動,不然tcp包就不能算到達對端。安裝 tar zxvf tcpcopy 0.9.0 tar.gz cd tcpcopy 0.9.0 configure m...

cocoapods 的安裝和使用

在我們進行程式設計的時候,為了提高效率,節省時間經常要用到第三方的類庫,但是手動匯入有比較麻煩,所以我們需要使用一種類庫管理工具就是最常見的 cocoapods.好了,甜點已經上完,下面就是我們的正菜了.首先 讓我們開啟終端 1.移除ruby的源位址 在 符號後輸入 gem sources remo...