我编译成功后,将动态连接库复制到当前目录下,运行时提示找不到动态连接库
提示找不到动态连接库./winner: error while loading shared libraries: libboost_regex-gcc-d-1_37.so: cannot open shared object file: No such file or directory
看一下程序的引用和连接库的版本信息,确实没问题:
用 ldd 查看文件的动态连接库信息,用 file 查看动态连接库版本信息[fancp@s12084 test]$ ldd winner
/lib/libcwait.so (0x00de9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00db1000)
libboost_regex-gcc-d-1_37.so => not found
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00340000)
libm.so.6 => /lib/tls/libm.so.6 (0x00b51000)
libc.so.6 => /lib/tls/libc.so.6 (0x00a23000)
/lib/ld-linux.so.2 (0x00a04000)
[fancp@s12084 test]$ file libboost_regex-gcc-d-1_37.so
libboost_regex-gcc-d-1_37.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
[fancp@s12084 test]$
查看了一下,原来是环境变量中 LIB 中没有添加当前目录为搜索路径。
修改 .bash_profile 文件,在 LIB 后面加一个冒号加一个点,保存,退出 shell ,再重新进入。OK!
Boost 的详细介绍:请点这里
Boost 的下载地址:请点这里
Boost程序库完全开发指南——深入C++“准”标准库高清PDF版
Ubuntu下编译安装boost库