gcc 针对boost库进行链接

gr8qqesn  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(282)

我在构建/运行某些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
        ...

但是,修改提供的配方hereldd似乎包括/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

所以我的问题是,为什么我会得到这个错误?

zxlwwiss

zxlwwiss1#

ldd使用系统高速缓存,并且该高速缓存需要通过以下方式显式更新:

sudo ldconfig

这样做解决了我的问题。

相关问题