我已经从源代码下载并构建了 boost_1_68_0 ,并收到了以下消息:
Boost C ++库已成功构建! 以下目录应添加到编译器包含路径:
/resources/boost_1_68_0
以下目录应添加到链接器库路径:
/resources/boost_1_68_0/stage/lib
此代码可以很好地编译:
g++-4.9 -std=c++11 -I /resources/boost_1_68_0 -L /resources/boost_1_68_0/stage/lib regex.cpp -lboost_regex -o reg
当我尝试运行代码时,我得到了:
./ reg:加载共享库时出错:libboost_regex.so.1.68.0: 无法打开共享对象文件:没有这样的文件或目录
但是,在/ resources / boost_1_68_0 / stage / lib中,我确实具有以下文件:
libboost_regex.so.1.68.0
libboost_regex.so -> libboost_regex.so.1.68.0
是否有一种方法可以使它在 / resources / boost_1_68_0 / stage / lib 目录内查找共享对象?
谢谢!
使用CentOS 7
答案 0 :(得分:1)
假设您具有计算机的root访问权限,请尝试:
echo "/resources/boost_1_68_0/stage/lib" >> /etc/ld.so.conf.d/boost.conf
并重新运行ldconfig
。
答案 1 :(得分:0)
您必须将/resources/boost_1_68_0/stage/lib
放在LD_LIBRARY_PATH
中:
export LD_LIBRARY_PATH=/resources/boost_1_68_0/stage/lib:${LD_LIBRARY_PATH}