Использование модульного тестирования для проверки C

Я пытаюсь использовать инфраструктуру модульного тестирования для C, называемую Check.

Я установил пакет, как указано в файле INSTALL в пакете:

  • ./Configure
  • сделать
  • сделать проверку → запустить самотестирование, поставляемое вместе с пакетом (успешно пройти).
  • сделать установку

После этого я не смог запустить свой собственный тест, поэтому, наконец, я решил использовать пример пакета в /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

Попробовал добавить каталог в LDFLAGS в файл make, но это не помогло, также попытался сделать то, что сделал Рик Хайтауэр здесь (... удаление файлов *.so(и их ссылок)), я не знаю, как удалить ссылки

Ответ 1

Попробуйте запустить ldconfig (т.е. sudo ldconfig) для восстановления кэша компоновщика времени выполнения.

Ответ 2

В моей системе по крайней мере (Debian) libcheck не упакован как общая библиотека, вам нужно связать ее статически, например.

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

Ответ 3

В этом проекте используется проверка https://github.com/batousik/Practical-C2

  • По какой-то причине требуется папка m4
  • .travis.yml имеет инструкции для зависимостей
  • после запуска script -
  • configure.ac, makefile.am, src/makefile.am, tests/makefile.am - это файлы для просмотра