使用makefile编译so文件时,增加属性:
'-Wl,-rpath,$$ORIGIN/'
用法举例makefile内容如下:
###########################
## make >a.txt 2>&1
BIN_NAME = ../bin/libMain.so
CINCPATH = -I. -I../include/
SRCS=main.cpp
LPATHS=-L../lib -L../LinuxLibs/x86/zlib
LIBS = -ldl
COMPILE = g++
CC = $(COMPILE) -g -shared -fno-rtti -Werror -pipe -Wall -Wno-unused -w -O2 -fPIC
PATH_Dyn=-Wl,-rpath=./ -Wl,'-Wl,-rpath,$$ORIGIN/'
############
OBJS= $(SRCS:%.cpp=%.o)
.cpp.o:
$(CC) -c $(CINCPATH) $(FLAGS) $< -o $@
$(BIN_NAME): $(OBJS)
$(CC) -o $(BIN_NAME) $(OBJS) $(LPATHS) $(LIBS) $(PATH_Dyn) $(FLAGS)
@echo "build success! " $(BIN_NAME)
cp:
cp ../bin/*.so /opt/
clean:
rm -f $(BIN_NAME)
rm -f ./*.o