C++ Linux プロジェクトの Makefile があります。
MODE ?= dbg
DIR = ../../../../../somdir/$(MODE)
SRC_FILES = a.cpp b.cpp
H_FILES = a.h
LDFLAGS += -L$(DIR)/lib/linux '-Wl,-R$$ORIGIN'
CPPFLAGS = -I$(DIR)/include
LIBRARIES = -lsomeso
ifeq (rel, $(MODE))
CFLAGS = -Wall -g -DNDEBUG
else
CFLAGS = -Wall -ansi -pedantic -Wconversion -g -DDEBUG -D_DEBUG
endif
sample: $(SRC_FILES) $(H_FILES) Makefile
g++ $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBRARIES) $(SRC_FILES) -o sample
「make」を実行すると、エラーなしでプロジェクトがビルドされます。しかし、プロジェクトを実行すると、次のように不平を言います:
error while loading shared libraries: libsomeso.so: cannot open shared object file: No such file or directory
DIR で指定したパスは、共有オブジェクトが保持されているフォルダー (makefile が配置されている場所と比較して) に移動します。パスが間違っていた場合、make プロセス中に文句を言わなかったのはなぜですか。
誰かが私が欠けているものを知っていますか?
ありがとうマット