我有一个用于 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 过程中不抱怨。
有人知道我错过了什么吗?
谢谢马特