加载共享库时出错:libnsd.so:无法打开共享对象文件:没有这样的文件或目录

时间:2014-12-28 14:45:24

标签: makefile

我正在写两个C程序。其中一个使用库libnsd.so。我使用makefile编译了两个C程序,如下所示:

CC=gcc
CFLAGS= -Wall -g -O -fPIC
RM= rm
HLAV=main
HLAVO=main.o


all:lib $(HLAV)
    cc c2.c -o c2


main: $(HLAVO)

    $(CC) -L. -o $(HLAV) $(HLAVO) -lnsd

lib: libnsd.so

libnsd.so: nsd.o nd.o
    $(CC) -shared $< -o $@



 nsd.o: nsd.c nsd.h nd.h

 nd.o: nd.c nsd.h nd.h



clean:
    $(RM) -rf *.o *.so main

当我尝试运行应用程序时出现错误:

  加载共享库时出现

错误:libnsd.so:无法打开共享库   目标文件:没有这样的文件或目录

任何人都知道如何解决它?

1 个答案:

答案 0 :(得分:2)

错误消息msg表示您的程序无法找到动态库libnsd.so

  1. 您需要从系统中找到库路径。
  2. 如果lib不在常规路径上,我建议将其放在常规路径上。

      

    whereis libnsd.so

         

    mv your_dir / libnsd.so / usr / local / lib

    注意:如果您的系统上不存在该库,则应首先安​​装它。

    1. 然后,使用ldconfig在配置文件中写入路径:
    2. sudo echo "/usr/local/lib" >> /etc/ld.so.conf
      sudo ldconfig
      

      或者,如果您的工作站中没有root权限,则只需更改用户环境路径:

        

      export LD_LIBRARY_PATH = / usr / local / lib:$ LD_LIBRARY_PATH