即使ldconfig执行,ld也找不到库

时间:2013-09-25 16:02:49

标签: ld

此处报告此问题有多种变体,据我了解答案,可归结为以下原因:

  • 未安装软件或其开发人员包
  • ldconfig不知道库
  • 缺少告诉搜索库的位置的编译器选项
  • 错误的库名称或缺少软链接(libfoo.so - > libfoo.so.5)

现在我有了:

/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

我缺少什么想法或提示?

此致 岸堤

1 个答案:

答案 0 :(得分:-1)

-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