此处报告的此问题有多种变体,据我了解的响应,可归结为以下原因:
现在我有了:
/usr/bin/ld: cannot find -lboost_regex
但是 ldconfig 知道它:
$ ldconfig -p | grep boost_regex.so
libboost_regex.so.5 (libc6,x86-64) => /usr/lib64/libboost_regex.so.5
libboost_regex.so (libc6,x86-64) => /usr/lib64/libboost_regex.so
它也存在:
$ ls -l /usr/lib64/libboost_regex.so
lrwxrwxrwx 1 root root 19 Sep 24 08:19 /usr/lib64/libboost_regex.so -> libboost_regex.so.5
$ ll /usr/lib64/libboost_regex.so.5
-rwxr-xr-x 1 root root 1000224 Apr 2 09:48 /usr/lib64/libboost_regex.so.5
我缺少什么想法或提示吗?
问候, 安迪
-lboost_regex
选项告诉ld
搜索/usr/lib64/libboost_regex.so
。这是 boost-regex 库的开发包提供的符号链接。
在 Fedora 上:
$ rpm -q --file /usr/lib64/libboost_regex.so
boost-devel-1.50.0-7.fc18.x86_64
在 Ubuntu 上:
$ dpkg -S /usr/lib/libboost_regex.so
libboost-regex1.49-dev: /usr/lib/libboost_regex.so
这是一篇旧帖子,但我今天也遇到了问题并想分享。
“ldconfig”用于在运行时加载库。它在构建期间对linking没有影响。我也很惊讶。
以下是我针对链接问题找到的两个解决方案:
使用 -L 构建时指定库目录
将您的库复制/移动到“标准”位置,例如 /usr/lib 。您可以尝试符号链接,但这对我不起作用。