在使用运行某个软件的时候,使用到了leveldb的库,但是我希望能链接到自己编译生成的那个leveldb库,于是就涉及到cmake的修改。这里我把所有需要的更换库都统一放在
/home/myusername/Documents/mylibleveldb 目录下,在CMakeList.txt中将涉及到这些库调用的路径全部改为该目录。这里使用CMAKE_PREFIX_PATH参数,会默认先从该路径查找,如下:
set(CMAKE_PREFIX_PATH "/home/myusername/Documents/mylibleveldb")
也可以在find_library里使用HINTS参数指定具体的leveldb的库的位置,如:
find_library(LEVELDB_LIB NAMES leveldb HINTS /home/myusername/Documents/mylibleveldb )`
如果有其他的缺失的动态链接库,直接在以下的set里添加上:
set(DYNAMIC_LIB
${CMAKE_THREAD_LIBS_INIT}
${GFLAGS_LIBRARY}
${PROTOBUF_LIBRARY}
${GPERFTOOLS_LIBRARIES}
${LEVELDB_LIB}
${BRAFT_LIB}
${BRPC_LIB}
rt
ssl
crypto
dl
z
snappy
pthread
memenv
rados
)