我在/usr/local/boost_1_55_0
下安装了boost_1_55_0,在我的makefile
中我将链接标记设置为:
CC = g++
CFLAGS = -I ./ -I/usr/local/boost_1_55_0 -w -std=c++11
LFLAGS = -L./ -lm -lpthread -L/usr/local/boost_1_55_0/lib -lboost_regex
我在编译期间没有遇到任何问题,但我得到了:
./$(exec):加载共享库时出错: libboost_regex.so.1.55.0:无法打开共享对象文件:没有这样的文件 或目录
我非常确定我清理了所有旧文件并再次编译,我还授予usr/local/boost_1_55_0
sudo chmod -R +x /usr/local/boost_1_55_0
中boost_1_55_0
文件读取权限的权限,以防我禁止访问权限。但是,我仍然有这个错误。我还尝试在/usr/lib/
中移动{{1}},但它也不起作用。
我也读过这个问题:Compiling issue with boost并在这个问题下尝试了两种解决方案,但它们都不适合我。有人能想出一个不同的解决方案吗?
答案 0 :(得分:0)
如错误所示,您的可执行文件无法找到共享库。将boost构建过程生成的.so文件(或者所有这些文件,如果您想要安全的话)添加到生成程序可执行文件的同一目录中,并尝试再次运行该程序。 / p>
答案 1 :(得分:0)
我手动清理了可执行文件并再次编译,它以某种方式解决了我的问题。我猜我的系统中必定有一些配置搞砸了,以便可执行文件无形地链接到某个过时的目录并导致这个问题。