我在构建/运行某些boost共享库时遇到问题。
编制作品:
$ g++ -l boost_filesystem -l boost_program_option
$
但运行时失败:
$ ./a.out
./a.out: error while loading shared libraries: libboost_filesystem.so.1.80.0: cannot open shared object file: No such file or directory
不出所料,ldd
抱怨道:
$ ldd a.out
...
libboost_filesystem.so.1.80.0 => not found
libboost_program_options.so.1.80.0 => not found
...
但是,修改提供的配方here,ldd
似乎包括/usr/local/lib
:
$ ldconfig -v |& grep "/usr/local/lib:"
/usr/local/lib: (from /etc/ld.so.conf.d/libc.conf:2)
/usr/local/lib/
包含所需的库:
$ ls -l /usr/local/lib/libboost_filesystem.so*
lrwxrwxrwx 1 root root 29 Oct 26 16:45 /usr/local/lib/libboost_filesystem.so -> libboost_filesystem.so.1.80.0
-rwxr-xr-x 1 root root 191992 Oct 26 16:45 /usr/local/lib/libboost_filesystem.so.1.80.0
所以我的问题是,为什么我会得到这个错误?
1条答案
按热度按时间zxlwwiss1#
ldd
使用系统高速缓存,并且该高速缓存需要通过以下方式显式更新:这样做解决了我的问题。