В настоящее время я сталкиваюсь с проблемой с моим проектом при настройке CI.
Resume
Проблема заключается в следующем: error while loading shared libraries: libgmock.so: cannot open shared object file: No such file or directory
.
Для решения вышеуказанной проблемы я не устанавливаю google test / google mock framework, а Я его компилирую . Хотя он говорит, что это не так, я напечатал переменную LD_LIBRARY_PATH со следующими результатами:
[root@f2cf44f0b794 st]# echo $LD_LIBRARY_PATH
/st/staging_dir/x86_64-linux-gnu/lib:/st/staging_dir/x86_64-linux-gnu/lib64
Чтобы проверить, не существует ли файл на самом деле, я использовал find и проверил, что он действительно существует :
[root@f2cf44f0b794 st]# find . -name libgmock.so*
./build_dir/x86_64-linux-gnu/googletest/googlemock/libgmock.so
./staging_dir/x86_64-linux-gnu/lib64/libgmock.so
У меня также есть каталог для двойной проверки:
[root@f2cf44f0b794 st]# ls /st/staging_dir/x86_64-linux-gnu/lib64/
cmake libcrypto.so libgmock.so libgtest.so libprotobuf-lite.so libprotobuf.so libprotoc.so libssh.so libssh.so.4.8.1 libssl.so pkgconfig
libcrypto.a libcrypto.so.1.1 libgmock_main.so libgtest_main.so libprotobuf-lite.so.3.8.0.0 libprotobuf.so.3.8.0.0 libprotoc.so.3.8.0.0 libssh.so.4 libssl.a libssl.so.1.1
Фон
Весь код строится для Ubuntu 14.04.5 и centos7 . Для этого две сборки выполняются на двух Docker контейнерах с указанными выше дистрибутивами. Самое смешное, что для контейнера Ubuntu сборка не завершается неудачно, а для контейнера CentOS происходит сбой с указанной выше ошибкой. Хотя приведенная выше ошибка относится только к модульному тестированию, и я мог легко отключить их для сборки CentOS, я действительно хотел понять, почему эта проблема возникает.
Заранее спасибо.