我正在写两个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:无法打开共享库 目标文件:没有这样的文件或目录
任何人都知道如何解决它?
答案 0 :(得分:2)
错误消息msg表示您的程序无法找到动态库libnsd.so
。
如果lib不在常规路径上,我建议将其放在常规路径上。
whereis libnsd.so
mv your_dir / libnsd.so / usr / local / lib
注意:如果您的系统上不存在该库,则应首先安装它。
sudo echo "/usr/local/lib" >> /etc/ld.so.conf sudo ldconfig
或者,如果您的工作站中没有root权限,则只需更改用户环境路径:
export LD_LIBRARY_PATH = / usr / local / lib:$ LD_LIBRARY_PATH