4

我正在尝试在 C++ 中使用来自 boost 的文件系统

使用时编译好像没问题

“c++ -c Analyse.c -o Analyse.o -g -W -Wall -L/usr/local/lib -lboost_filesystem -lboost_system”

但是,在尝试执行我的代码时出现以下错误:

“加载共享库时出错:libboost_filesystem.so.1.54.0:无法打开共享对象文件:没有这样的文件或目录”,查找/-iname“libboost_system.so.1.54.0

我在安装 boost 时遇到了一些问题(我首先安装了 1.49,然后安装了 1.54)所以我想知道 2 版本之间是否存在冲突?

PS:顺便说一句,"find / -iname "libboost_system.so.1.54.0"给了我以下

/usr/include/boost/boost_1_54_0/bin.v2/libs/system/build/gcc-4.7/release/threading-multi/libboost_system.so.1.54.0

/usr/local/lib/libboost_system.so.1.54.0
4

2 回答 2

4

尝试在执行前添加目录。例如: LD_LIBRARY_PATH="/usr/local/lib/" ./Analyse.o

于 2013-08-27T17:02:15.640 回答
0

我最近在全新安装 boost 后遇到了这个问题。就我而言,解决方案是简单地运行

sudo ldconfig

解释是系统保留了已安装共享库的缓存(位于/usr/lib/lib/usr/local/lib)。当库更改或添加新库时,缓存在ldconfig运行之前不会更新。更多细节可以在ldconfig手册中找到。

于 2016-11-12T21:38:02.310 回答