2016-10-05 55 views
1

起初我用-L../標誌來指定.so文件在../。雖然它不起作用,我將庫複製到/usr/local/lib/,刪除-L標誌,重新編譯,它仍然不起作用。這裏是我的Makefile找不到共享庫的時候庫已經在/ usr/local/lib中

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

+0

請考慮在您的問題中添加其他描述性標籤。也許[gcc],[linux]等等 – metalfox

回答

0

程序使用環境變量LD_LIBRARY_PATH在成功編譯和鏈接後搜索包含庫的目錄。

所以,如果你設置:

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

程序運行應。