加载共享库时出错:libgmock.so:无法打开共享库文件:没有这样的文件或目录

问题描述 投票:0回答:1

我当前在配置CI时遇到了我的foudn项目。

恢复

面临的问题如下:error while loading shared libraries: libgmock.so: cannot open shared object file: No such file or directory

对于上述问题,我没有安装google test / google模拟框架,但我正在编译。尽管它说没有,但我已经用以下结果打印了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

我也有ls目录仔细检查:

[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.5centos7构建所有代码。为此,两个构建在具有上述发行版的两个Docker容器上运行。有趣的是,对于Ubuntu容器,构建不会失败,但是对于CentOS容器,构建会失败,并显示上述错误。尽管上面的错误仅用于单元测试,我可以轻松地将它们禁用以进行CentOS构建,但我真的很想了解为什么会发生此问题。

提前感谢。

c++ linux makefile compilation centos7
1个回答
0
投票

我发现了问题。除用于构建覆盖LD_LIBRARY_PATH的单元测试的脚本外,所有内容均已正确设置。它可以在Ubuntu上运行,因为用LD_LIBRARY_PATH替代的LD_LIBRARY_PATH对于Ubuntu仍然正确。

© www.soinside.com 2019 - 2024. All rights reserved.