当库已经在/usr/local/lib中时,无法找到共享库

cannot find shared library when library already in /usr/local/lib

本文关键字:共享 中时 local usr lib      更新时间:2023-10-16

首先使用-L../标志来指定../中的.so文件。虽然它不起作用,但我将库复制到/usr/local/lib/,删除-L标志,重新编译,它仍然不起作用。这是我的Makefile:

CFLAGS = -std=c++11 -lstdc++ -Wall -I../src/ -L../
all:
    $(CXX) $(CFLAGS) example.cpp -o example -ltest

库文件调用libtest.so并放置在../中,它编译成功,但在两种情况下运行它时,我得到了error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory

环境变量LD_LIBRARY_PATH用于在程序成功编译和链接后搜索包含库的目录。

所以,如果你设置:

export LD_LIBRARY_PATH=/path/to/where/your/library/is:$LD_LIBRARY_PATH