前言
下面主要是對于兩種環境安裝、配置、使用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