使用单元测试框架进行 C 语言检查

12

我正在尝试使用C语言的单元测试框架Check

我按照包中的INSTALL文件的说明安装了该软件包:

  1. ./configure
  2. make
  3. make check -> 运行自带的自测(成功通过)。
  4. make install

但在运行我的测试时失败了,最终我决定使用位于/usr/local/share/doc/check/example目录下的示例程序。

执行了以下命令:

$ autoreconf --install
$ ./configure
$ make
$ make check

仍然是同样的问题:

/usr/local/share/doc/check/example/tests/.libs/lt-check_money: error while loading shared libraries: libcheck.so.0: cannot open shared object file: No such file or directory
FAIL: check_money

尝试在make文件中将目录添加到LDFLAGS,但没有帮助,还尝试了Rick Hightower在这里所做的操作(...删除*.so文件及其链接),但我不知道如何删除链接。
3个回答

17

尝试运行 ldconfig 命令 (例如: sudo ldconfig),以重建运行时链接器缓存。


2

至少在我的系统上(Debian),libcheck没有被打包为共享库,您需要静态链接它,例如:

gcc -o test_program test1.o test2.o /usr/lib/libcheck.a

或者,您可以在您的.bashrc中添加以下行:export LD_LIBRARY_PATH=/usr/lib/(调整路径以匹配您的libcheck安装位置 - 如果您仅安装了单个用户,则可能在/home/$user/usr/lib/中)。在执行source ~/.bashrc命令后,就可以使用了。这种方式也适用于您的其他项目。 - deepbrook

0

这个项目使用了check https://github.com/batousik/Practical-C2

  1. 由于某些原因,需要一个名为m4的文件夹
  2. .travis.yml中包含了依赖项的说明
  3. 运行脚本之后 -
  4. configure.ac、makefile.am、src/makefile.am和tests/makefile.am是需要查看的文件

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接