库已在/ usr / local / lib

时间:2016-10-05 04:38:13

标签: c++ linux gcc

首先,我使用-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

1 个答案:

答案 0 :(得分:1)

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

所以,如果你设置:

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

程序应该运行。