Linux下的动态库使用默认都是用的绝对路径下的,就那几个指定的lib路径,如果需要使用其他的路径下的库的话,需要设置LD_LIBRARY_PATH 并且export 出去。 这样的话,对于一个程序自己的私有库的使用就比较复杂,于是我想到了使用windows下面的办法,用相对路径。
linux下的相对路径的动态库使用主要是通过编译选项的指定来实现,即rpath。
我是用qmake来配置的。
动态库的生成配置如下:
TEMPLATE = libTARGET = ./Release/zDEPENDPATH += .INCLUDEPATH += .HEADERS +=SOURCES +=CONFIG -= qtCONFIG += dll上面的 TEMPLATE必须指定为lib,用来生成库而不是程序,CONFIG 加上 dll表示生成的是动态链接库。
使用库的配置:
TEMPLATE = appTARGET = CONFIG -= qtunix: LIBS += -L./ -lzunix:{ QMAKE_LFLAGS += -Wl,--rpath=./}