oZaoHua 2020-02-16
因为自己最近在学Redis,想要在C++中获取到Redis内存数据库中的数据,需要使用Redis客户端来连接Redis传输命令并接收数据,在Redis官方网站上推荐的客户端中选择了acl-redis。而Clion是一款非常优秀的C++集成开发环境,Clion选择了CMake作为构建工具,所以需要在CMake配置文件中进行配置。
CMake的所有配置都写在一个叫CMakeLists.txt的文件当中,所有的配置都写在该文件当中。
这是我的工程目录结构,Include文件夹为acl-redis的所有头文件,lib文件夹为acl-redis的静态库,在下面的介绍过程中会以此为例子来讲解如何引入lib文件夹下的静态库。
#声明头文件路径 set(INC_DIR ./include) #声明链接库路径 set(LINK_DIR ./lib)
这里采用的是相对路径的方式来引用头文件和库文件,这样工程位置发生改变的时候,可以不用修改配置文件,其中./表示当前路径。
#引入头文件 include_directories(${INC_DIR}) #引入库文件 link_directories(${LINK_DIR})
在CMake中,${}的语法含义是获取变量的值,这和shell中获取变量值的方式很相似。在项目中引入了头文件和库文件,这样在编译的时候才知道到哪里去寻找相应的头文件和库文件。
#添加编译文件 add_executable(TestRedis cluster.cpp)
TestRedis为我在CMake中设置的项目名称(后面会将完整的CMake文件展示出来),cluster.cpp为我要编译的文件。
#将第三方库链接在一起 target_link_libraries(TestRedis lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)
此时将需要链接的第三方库链接在一起即可。
#设置cmake版本 cmake_minimum_required(VERSION 3.15) #项目名字 project(TestRedis) #设置编译版本 set(CMAKE_CXX_STANDARD 14) #设置头文件路径 set(INC_DIR ./include) #设置链接库路径 set(LINK_DIR ./lib) #引入头文件 include_directories(${INC_DIR}) #引入库文件 link_directories(${LINK_DIR}) #编译文件 add_executable(TestRedis cluster.cpp) #将第三方库连接在一起 target_link_libraries(TestRedis lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)