2016-10-05 5 views
1

最初に-L../フラグを使用して.soファイルを../に指定しました。動作しませんでしたが、ライブラリを/usr/local/lib/にコピーし、-Lフラグを削除して再コンパイルしても、動作しませんでした。ライブラリがすでに/ 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を得た:ここに私のMakefileです。

+0

質問に説明的なタグを追加することを検討してください。たぶん[gcc]、[linux]など – metalfox

答えて

0

環境変数LD_LIBRARY_PATHは、ライブラリが正常にコンパイルされてリンクされた後でライブラリを含むディレクトリを検索するためにプログラムで使用されます。

だから、あなたが設定されている場合:

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

プログラムが実行する必要があります。

関連する問題