2011-08-24 92 views
2

我刚刚使用由自定义第三方供应商提供的一些库编译了测试应用程序。没有安装/软件包管理器。应用程序按预期构建。然而,当我去运行它,它似乎无法找到所需的.so文件(我已经得到了坐在同一目录):链接/注册.so文件

[[email protected] Debug]$ ls 
esdcan libntcan.so.3 makefile objects.mk sources.mk src 
[[email protected] Debug]$ ./esdcan 
./esdcan: error while loading shared libraries: libntcan.so.3: cannot open shared object file: No such file or directory 
[[email protected] Debug]$ ldd esdcan 
    linux-vdso.so.1 => (0x00007fff125ff000) 
    libntcan.so.3 => not found 
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000031d2600000) 
    libm.so.6 => /lib64/libm.so.6 (0x00000031c7600000) 
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000031c8600000) 
    libc.so.6 => /lib64/libc.so.6 (0x00000031c7200000) 
    /lib64/ld-linux-x86-64.so.2 (0x00000031c6e00000) 

我错过了一些步骤,我当然,我完全不知道这一步是什么。

回答

4

完成构建后运行ldconfig,并确保当前目录位于/etc/ld.so.conf文件中,以便当前目录是用于查找共享库的受信任目录。

+0

这样做,谢谢! – iegod

0

你可以把它复制到某个地方像/ usr/lib目录(这是一个有点侵入性的),或者你可以尝试设置LD_LIBRARY_PATH = [绝对(?)路径包含libntcan.so.3]:LD_LIBRARY_PATH运行前。

1
/etc/ld.so.conf   File containing a list of colon, space, tab, new- 
          line, or comma-separated directories in which to 
          search for libraries. 

您也可以设置$LD_LIBRARY_PATH环境变量。