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...