前言
下面主要是对于两种环境安装、配置、使用C++的第三方包(redis++),对于其他的第三方库,也可以使用类似的方法进行类比安装。
且大多数的第三方库都可以利用工具一键安装或手动编译安装。
Windows
要在Windows系统上快速安装和使用Redis++,一般有手动编译安装与通过包管理器一键安装。下面一一介绍:
方法一:使用vcpkg安装(推荐)
简单介绍一下,vcpkg 是一个跨平台的开源 C/C++ 库管理工具,可以简化 C++ 开发过程中对第三方库的获取、构建和管理。
下面的命令执行时,需注意主机可以正常连接 github。
-
通过命令提示行(cmd)或Powershell 安装vcpkg:
- 进入想要安装的文件夹后,执行下面的命令。
git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat
-
安装Redis++:
- 安装vcpkg后,在vcpkg所在路径下继续执行:
.\vcpkg\vcpkg install redis-plus-plus
-
安装完毕后,便可以使用,下面写一个简单的示例进行演示:
示例
首先确保当前环境下:
- 已按照之前的步骤成功安装Redis++ (通过vcpkg)
- 本地已安装并运行Redis服务器 (默认端口6379)
- 已安装CMake和C++17兼容的编译器(如MSVC 2019/2022)
-
项目结构如下:
redis_demo/ ├── CMakeLists.txt # CMake配置文件 ├── src/ │ └── main.cpp # 主程序文件 └── cmake/ # (可选)CMake模块文件夹
-
CMakeLists.txt 可以参考下面的内容进行编写:
cmake_minimum_required(VERSION 3.15)
project(redis_demo)# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 指定vcpkg工具链(根据vcpkg.cmake的实际路径调整)
set(CMAKE_TOOLCHAIN_FILE "./vcpkg.cmake")# 查找Redis++库
find_package(redis++ CONFIG REQUIRED)# 添加可执行文件(此处用的是main.cpp)
add_executable(${PROJECT_NAME} src/main.cpp) # 链接Redis++库
target_link_libraries(${PROJECT_NAME} PRIVATE redis++::redis++)
- 编写一个测试连接代码:
#include <sw/redis++/redis++.h>
#include <iostream>
#include <string>using namespace sw::redis;
using namespace std;int main() {try {// 1. 创建Redis连接// 格式: tcp://[用户名:密码@]主机[:端口][/数据库]// auto redis = Redis("tcp://127.0.0.1:6379");// 这里使用 ConnectionOptions 进行连接sw::redis::ConnectionOptions opts;opts.host = "127.0.0.1"; // Redis服务器地址opts.port = 6379; // Redis端口opts.password = "123456"; // 密码(如果没有密码可以省略)// opts.db = 0; // 可选:选择数据库(默认0)sw::redis::Redis redis(opts); // 正确构造Redis对象cout << "成功连接到Redis服务器!" << endl;// 2. 设置键值redis.set("my_key", "Hello Redis++");// 3. 获取值auto val = redis.get("my_key");if (val) {cout << "获取的值: " << *val << endl;} else {cout << "键不存在" << endl;}// 4. 检查键是否存在if (redis.exists("my_key")) {cout << "键存在" << endl;}// 5. 删除键redis.del("my_key");} catch (const Error &e) {cerr << "Redis错误: " << e.what() << endl;return 1;} catch (const exception &e) {cerr << "标准错误: " << e.what() << endl;return 1;}return 0;
}
- 执行cmake,编译项目:
- 可以在命令行中执行:
- 生成构建系统:
cmake -B build -DCMAKE_TOOLCHAIN_FILE=D:/Coder/tools/vcpkg/scripts/buildsystems/vcpkg.cmake
- 编译项目:
cmake --build build --config Release
- 运行程序:
./build/Release/redis_demo.exe
- 也可以在vs下进行运行:
- 用vs打开项目后,会生成CMakeLists.json文件,打开后进行配置vcpkg.cmake的路径即可执行:
- 此时执行命令,获取结果:
- 用vs打开项目后,会生成CMakeLists.json文件,打开后进行配置vcpkg.cmake的路径即可执行:
- 可以在命令行中执行:
方法二:使用NuGet(Visual Studio用户)
首先确保vs下安装了 NuGet 包管理工具:
- 在Visual Studio中打开您的项目
- 右键点击项目 → “管理NuGet程序包”
- 搜索 “redis-plus-plus” 并安装
或去nuget官网直接下载nuget 官网
方法三:手动编译安装
-
下载源码:
git clone https://github.com/sewenew/redis-plus-plus.git cd redis-plus-plus
-
编译安装:
mkdir build cd build cmake .. cmake --build . --config Release cmake --install .
-
设置头文件和库文件路径:
Redis++默认会安装到
C:\Program Files (x86)\redis-plus-plus
,包含:- 头文件路径:
include\
- 库文件路径:
lib\
或bin\
(动态库)
假设使用的是默认安装路径,在项目中需要配置:
- 包含路径:添加
C:\Program Files (x86)\redis-plus-plus\include
- 库路径:添加
C:\Program Files (x86)\redis-plus-plus\lib
- 头文件路径:
-
链接库文件“
根据编译类型选择链接的库:
- Debug模式:
redis++d.lib
(静态库)或redis++d.dll
(动态库) - Release模式:
redis++.lib
或redis++.dll
在CMake中配置示例:
find_package(hiredis REQUIRED) # Redis++依赖hiredis find_package(redis++ REQUIRED)target_include_directories(your_target PRIVATE "C:/Program Files (x86)/redis-plus-plus/include") target_link_libraries(your_target PRIVATE redis++::redis++)
- Debug模式:
代码示例
不管使用哪种方式安装完成后,都可以通过下面的代码进行测试:
#include <sw/redis++/redis++.h>
#include <iostream>
#include <string>using namespace sw::redis;
using namespace std;int main() {try {// 1. 创建Redis连接// 格式: tcp://[用户名:密码@]主机[:端口][/数据库]// auto redis = Redis("tcp://127.0.0.1:6379");// 这里使用 ConnectionOptions 进行连接sw::redis::ConnectionOptions opts;opts.host = "127.0.0.1"; // Redis服务器地址opts.port = 6379; // Redis端口opts.password = "123456"; // 密码(如果没有密码可以省略)// opts.db = 0; // 可选:选择数据库(默认0)sw::redis::Redis redis(opts); // 正确构造Redis对象cout << "成功连接到Redis服务器!" << endl;// 2. 设置键值redis.set("my_key", "Hello Redis++");// 3. 获取值auto val = redis.get("my_key");if (val) {cout << "获取的值: " << *val << endl;} else {cout << "键不存在" << endl;}// 4. 检查键是否存在if (redis.exists("my_key")) {cout << "键存在" << endl;}// 5. 删除键redis.del("my_key");} catch (const Error &e) {cerr << "Redis错误: " << e.what() << endl;return 1;} catch (const exception &e) {cerr << "标准错误: " << e.what() << endl;return 1;}return 0;
}
注意事项
- 使用Redis++前需要先安装并运行Redis服务器
- 确保编译器支持C++17标准
- Redis++依赖于hiredis库,使用vcpkg或NuGet安装时会自动解决此依赖
卸载方法
方法一:通过 vcpkg 安装的卸载
- 使用 vcpkg 卸载
# 进入vcpkg目录
cd D:\Coder\tools\vcpkg# 卸载redis-plus-plus
.\vcpkg remove redis-plus-plus# 如果需要,同时卸载hiredis依赖
.\vcpkg remove hiredis
- 完全清理 vcpkg
如果想彻底移除 vcpkg 安装的所有包:
# 删除vcpkg安装的所有包
.\vcpkg remove --outdated --recurse# 或者直接删除整个vcpkg目录
rmdir /s /q D:\Coder\tools\vcpkg
方法二:通过 NuGet 安装的卸载
-
在 Visual Studio 中卸载
- 打开项目
- 右键点击项目 → “管理 NuGet 程序包”
- 切换到"已安装"选项卡
- 找到 “redis-plus-plus” 并点击"卸载"
-
手动清理
NuGet 包通常安装在项目目录的
packages
文件夹中,可以手动删除:rmdir /s /q .\packages\redis-plus-plus.*
方法三:手动编译安装的卸载
-
卸载已安装的文件
如果使用了
cmake --install .
安装到默认位置:# 删除头文件 rmdir /s /q "C:\Program Files (x86)\redis-plus-plus\include\sw"# 删除库文件 del "C:\Program Files (x86)\redis-plus-plus\lib\redis++.lib" del "C:\Program Files (x86)\redis-plus-plus\bin\redis++.dll"# 删除CMake配置文件 rmdir /s /q "C:\Program Files (x86)\redis-plus-plus\lib\cmake\redis++"
-
清理环境变量
如果手动添加过环境变量:
- 打开"系统属性" → “高级” → “环境变量”
- 在"系统变量"中删除或修改:
PATH
中相关的 Redis++ 路径- 任何自定义的
REDISPP_INCLUDE
或REDISPP_LIB
变量
验证卸载是否彻底
-
检查残留文件
在命令提示框搜索系统中可能残留的文件:
where /R C:\ redis++.h where /R C:\ redis++.lib where /R C:\ redis++.dll
-
检查注册表
按
Win+R
输入regedit
,搜索 “redis-plus-plus” 或 “redis++” 删除相关项 -
最终清理后验证
- 尝试编译一个使用 Redis++ 的项目,应该出现"找不到头文件"的错误
- 检查程序运行时是否还会加载 redis++.dll(使用 Process Explorer 工具)
Linux(Ubuntu22.04)
以 Ubuntu 22.04 系统为例,下面是安装和使用 Redis++ 的详细步骤,包含多种安装方式和验证方法。
方法一:使用 apt 安装(推荐)
- 安装依赖项
sudo apt update
sudo apt install -y git cmake g++ make libhiredis-dev libssl-dev
- 安装 Redis++
sudo apt install -y libredis++-dev libredis++1
- 验证安装
# 检查头文件
ls /usr/include/sw/redis++/redis++.h# 检查库文件
ls /usr/lib/x86_64-linux-gnu/libredis++.so
方法二:从源码编译安装
- 安装编译依赖
sudo apt update
sudo apt install -y git cmake g++ make libhiredis-dev libssl-dev
- 下载源码
git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus
- 编译安装
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install
- 配置动态链接库路径
sudo ldconfig
方法三:使用 vcpkg 安装
- 安装 vcpkg
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
- 安装 Redis++
./vcpkg/vcpkg install redis-plus-plus
- 集成到 CMake 项目
在 CMakeLists.txt 中添加:
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake")
find_package(redis++ CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE redis++::redis++)
代码示例
同理,安装配置完redis++后,编写测试文件,检查是否安装成功:
- 创建测试文件
test_redis.cpp
#include <sw/redis++/redis++.h>
#include <iostream>int main() {try {// 连接选项sw::redis::ConnectionOptions opts;opts.host = "127.0.0.1";opts.port = 6379;// opts.password = "your_password"; // 如果有密码// 创建Redis连接sw::redis::Redis redis(opts);std::cout << "成功连接到Redis服务器!" << std::endl;// 设置键值redis.set("test_key", "Hello from Ubuntu");// 获取值auto val = redis.get("test_key");if (val) {std::cout << "获取的值: " << *val << std::endl;}return 0;} catch (const std::exception &e) {std::cerr << "错误: " << e.what() << std::endl;return 1;}
}
-
编译运行
- 使用 apt 或源码安装的编译命令:
g++ -std=c++17 test_redis.cpp -o test_redis -lredis++ -lhiredis ./test_redis
- 使用 vcpkg 安装的编译命令:
g++ -std=c++17 -I/path/to/vcpkg/installed/x64-linux/include test_redis.cpp \-L/path/to/vcpkg/installed/x64-linux/lib -lredis++ -lhiredis \-o test_redis ./test_redis
常见问题解决
- 找不到 redis++ 库
sudo ldconfig # 更新库缓存
-
连接 Redis 失败
- 确保 Redis 服务器已运行:
sudo systemctl status redis-server
如果没有安装 Redis 服务器(不至于),用下面的语句进行安装:
sudo apt install -y redis-server sudo systemctl start redis-server
-
编译错误:C++17 不支持
- 确保使用支持 C++17 的编译器:
g++ --version # 应该 >= 7.0
卸载方法
- 从 apt 安装的卸载
sudo apt remove --purge libredis++-dev libredis++1
- 从源码安装的卸载
# 进入编译目录
cd redis-plus-plus/build
sudo make uninstall