Linux下c/c++相对路径动态库的生成与使用

Linux下的动态库使用默认都是用的绝对路径下的,就那几个指定的lib路径,如果需要使用其他的路径下的库的话,需要设置LD_LIBRARY_PATH 并且export 出去。 这样的话,对于一个程序自己的私有库的使用就比较复杂,于是我想到了使用windows下面的办法,用相对路径。

linux下的相对路径的动态库使用主要是通过编译选项的指定来实现,即rpath。

我是用qmake来配置的。

动态库的生成配置如下:

TEMPLATE = lib
TARGET = ./Release/z
DEPENDPATH += .
INCLUDEPATH += .

HEADERS +=

SOURCES +=

CONFIG -= qt
CONFIG += dll
上面的 TEMPLATE必须指定为lib,用来生成库而不是程序,CONFIG 加上 dll表示生成的是动态链接库。

使用库的配置:

TEMPLATE = app
TARGET = 

CONFIG -= qt
unix: LIBS += -L./ -lz
unix:{
    QMAKE_LFLAGS += -Wl,--rpath=./
}

你可能感兴趣的:(linux,动态库)