参考资料

1、官方源码编译安装说明地址:http://docs.redisdesktop.com/en/latest/install/#build-from-source

2、源码编译Redis Desktop Manager
————————————————
版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
原文链接:https://kany.me/2019/10/10/compile-redis-desktop-manager/

3、WIN10+QT5.9+VS2015编译RedisDesktopManager
————————————————
原文链接:https://blog.csdn.net/sailorhdx/article/details/81538131

4、Redis Desktop Manager 2020.2 Windows 源码编译
————————————————
原文链接:https://blog.csdn.net/aileitianshi/article/details/107920808


个人实践问题整理

1、安装Visual Studio 2017

勾选c++开发即可,使用默认安装选项
其中包含了CMake和win10 SDK
我这里勾选了Python,本来想着不用另外安装了,后来发现并不好用,少东西,又重新安装的,这里可以不用勾选

2、安装Qt

至少包括以下组件
Qt Charts 不选后面会报错Project ERROR: Unknown module(s) in QT: charts
需要重新安装Qt

3、引入项目

此处之前在网站上下载了源码压缩包
通过Qt打开源码路径 ./src/rdm.pro

点击Manage…
默认配置,未修改

4、报错。。修复。。报错。。修复

1、引入项目后报错
1.1
错误信息

Cannot read E:/database/redis/RedisDesktopManager-2020.2/3rdparty/qredisclient/qredisclient.pri: No such file or directory
Cannot read E:/database/redis/RedisDesktopManager-2020.2/3rdparty/pyotherside/pyotherside.pri: No such file or directory

错误原因及解决办法
github网站上直接下载的文件不全,不包含里面的子项目。

可从GitHubDesktop引入源码
或执行–recursive参数

git clone --recursive https://github.com/uglide/RedisDesktopManager.git

1.2
错误信息

Project ERROR: Unknown module(s) in QT: charts

错误原因及解决办法
安装QT charts,在Qt目录下找到MaintenanceTool,运行删除后重新安装Qt

2、运行。。报错

2.1
错误信息

C1083: 无法打开包括文件: “zlib.h”: No such file or directory

错误原因及解决办法
安装zlib库
打开Visual Studio 2017,使用nuget安装
执行Install-Package zlib-msvc-x64 -Version 1.2.11.8900
原项目用的 zlib-msvc-x64 -Version 1.2.11.7795版本,可直接下载此版本。我这里用的8900版本的,后面需要修改项目中的路径
报错

随便新建一个项目,然后再次执行

去下载路径找到文件,复制到项目rdm\3rdparty目录下,注意路径需要匹配
此处我下载的zlib小版本为8900,需要修改原项目路径,也可直接下载7795版本

延伸错误
Qt5中自带zlib,可将#include <zlib.h>改为#include <QtZlib/zlib.h>

可以解决zlib报错,但是后面会出现新的错误

错误信息

error: LNK1104: 无法打开文件“F:\Project\self\RedisDesktopManager\3rdparty\zlib-msvc14-x64.1.2.11.7795\build\native\lib_release\zlibstatic.lib”

错误原因及解决办法
下载zlib,修改配置

2.2
错误信息

C1083: 无法打开包括文件: “Python.h”: No such file or directory

错误原因及解决办法
修改项目中python路径为本地python路径
原项目使用的Python3.7,我这里更换为最新版的Python3.8.5

2.3

错误信息

C2039: “z_compress”: 不是“qcompress”的成员

错误原因及解决办法
qcompress中的方法compress和zlib中重名,调整引入顺序

3、解决2个错误,出来200个错误。。内心极度崩溃。。

错误信息

C2061:语法错误: 标识符“sdshdr5”
...

错误原因及解决办法
由于win下的软件和其他的平台的C的语法区别需要合并补丁
进入源码 .\3rdparty\qredisclient\3rdparty\hiredis目录下
执行 git apply …/hiredis-win.patch

4、错误越来越少~

4.1

错误信息

error: LNK1104: 无法打开文件“python38_d.lib”

错误原因及解决办法
找到Python\Python38\libs路径

复制python38.lib为python38_d.lib
另一种修改方式
修改Python\Python38\include\pyconfig.h文件
修改python38_d.lib为python38.lib

这里是项目用debug构建的,更改release构建应该也可以解决这个错误

4.2

错误信息

qmlutils.obj:-1: error: LNK2019: 无法解析的外部符号 "class QByteArray __cdecl qcompress::compress(class QByteArray const &,unsigned int)" (?compress@qcompress@@YA?AVQByteArray@@AEBV2@I@Z),该符号在函数 "public: class QVariant __cdecl QmlUtils::compress(class QVariant const &,unsigned int)" (?compress@QmlUtils@@QEAA?AVQVariant@@AEBV2@I@Z) 中被引用

错误原因及解决办法
此处是修改zlib为QtZlib/zlib.h后出现的错误,将其改回原来路径

4.3

错误信息

qpython.obj:-1: error: LNK2019: 无法解析的外部符号 __imp__Py_NegativeRefcount,该符号在函数 _Py_DECREF 中被引用

错误原因及解决办法
安装的Python为release版,项目debug模式执行
修改项目编译运行模式,从debug改为release

5、运行成功

5、运行成功后其他修改

1、翻译,编译前执行,不执行无法切换语言
2、OpseSSL
下载路径
https://slproweb.com/products/Win32OpenSSL.html
这里选的 64位v1.1.1g版本,不要选light版,里面没有lib包

修改rdm中openssl路径为本地路径

3、屏蔽更新检查提示:
编辑src/modules/updater/updater.cpp文件注释以下代码:

4、遗留问题
可以看到界面,可以连接数据库,可以打开命令窗,无法展示key。界面按钮无边框。不知道是哪里的问题,用的win7系统。。

iscan错误是redis版本过低,工具无法展示,可以用命令窗查看。
界面按钮无边框可能是系统或者新版特性如此,不影响使用。

QT还有一堆not defined提示。。
可以正常使用,暂未发现有其他影响

#### 6、已放弃
看到后续打包还有好多坑,毅然决然放弃了自己编译,整了2天,太费劲了。。

6、打包绿色版

歇了两天接着搞起。
1、编译好后进入rdm-2020.2/bin/windows/release目录,可以看到 rdm.exe

将 rdm.exe 文件复制到rdm-2020.2/build/windows/installer/resources目录中
2、打包
在rdm-2020.2/build/windows/installer/resources处打开cmd
执行qt打包命令

E:\compileTool\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\windeployqt --release --qmldir F:\Project\self\RedisDesktopManager\src\qml rdm.exe



此时双击打开 rdm.exe 程序应该是可以看到界面的了
3、添加Python运行环境
但发给别人就会出现缺少python38.dll, 因为自己安装python环境而别人没有, 所以还需要用到下载Python运行库 python-3.8.5-embed-amd64.zip 包
这里选择和本地的Python版本对应的运行库
下载网址:https://www.python.org/ftp/python/3.8.5/

将里边的 python38.dll 和 python38.zip 复制到rdm-2020.2/build/windows/installer/resources目录中.
4、至此已打包成绿色版,直接添加压缩包发送即可使用。
5、安装包需要用NSIS工具继续打包,没有进行实践,请参考顶部资料自行实践。

7、日志报错处理

启动后打开日志,显示下方错误

Formatters: Function not found: 'formatters.get_formatters_list' (Traceback (most recent call last):File "<string>", line 1, in <module>
AttributeError: module 'formatters' has no attribute 'get.formatters_list'
)

这是对redis的value值进行解析的扩展没有找到
解决方式:
1、在rdm-2020.2/build/windows/installer/resources目录下新建Lib/site-packages目录
将rdm-2020.2/src/py目录下所有文件复制到新建目录中2、打开requirements.txt,里面显示需要添加的依赖
分别执行python命令添加依赖

pip install bitstring
pip install cbor
pip install msgpack
pip install phpserialize
pip install rdbtools
pip install python-lzf
pip install ddt
pip install nose
pip install numpy
pip install pandas

3、进入python的安装目录, 进入Lib/site-packages下
将下载好的依赖复制到rdm-2020.2/build/windows/installer/resources/Lib/site-packages目录中
其中redis为rdbtools依赖,dateutil、pytz、six为pandas依赖
4、进入rdm-2020.2/build/windows/installer/resources/Lib/site-packages目录
打开cmd黑窗口执行: python -m compileall -b . 进行编译
5、重新运行rdm.exe
6、出现如下错误No module named 'unicodedata'

Python运行环境导入不全
解决办法:
将之前下载的python-3.8.5-embed-amd64.zip 包中,所有.pyd后缀的文件导入到rdm-2020.2/build/windows/installer/resources/Lib/site-packages目录下
7、再次编译后运行,入日志无报错出现8、删除Python源码减小体积(可选)
我这里大概从210M减到180M左右吧

del /s .\*.py

9、打包绿色版,或者NSIS继续打包

源码编译Redis Desktop Manager参考相关推荐

  1. Mac OS Catalina (10.15)下编译Redis Desktop Manager(RDM)

    前言 Redis Desktop Manager(RDM) 是个简单易用的GUI Redis 管理工具,支持跨平台.现在Redis Desktop Manager官网已经不在提供编译好的下载来使用,改 ...

  2. 【华为云技术分享】手把手教你如何在ARM上源码编译Redis

    一.基础环境信息 OS: Euler OS 2.8 CPU: ARM 二.编译和安装Redis步骤如下 执行如下命令,获取Redis源码. wget http://download.redis.io/ ...

  3. Jetson Nano 源码编译安装PySide6

    背景 最近要将一个使用PySide6写GUI的程序部署到英伟达Jetson Nano上.原本以为装个conda就能很快装好环境,结果发现arm的生态有点太糟糕了,啥都要自己编译安装,尤其是这个Pysi ...

  4. 最好用的Redis Desktop Manager 0.9.3 版本下载 以及源码编译教程

    文章目录 一.前言 二.编译教程 2.1 [redis destop manager 的源码地址](https://github.com/uglide/RedisDesktopManager) 2.2 ...

  5. Redis源码编译安装

    安装依赖包 yum install gcc tcl 下载源码包 wget http://download.redis.io/releases/redis-4.0.8.tar.gz 解压 tar -xz ...

  6. Nginx+Php-fpm+MySQL+Redis源码编译安装指南

    说明:本教程由三部分组成如下: 1.      源码编译安装Nginx 2.      源码编译安装php以及mysql.redis扩展模块 3.      配置虚拟主机 文中所涉及安装包程序均提供下 ...

  7. ubuntu redis desktop manager 编译问题解决

    问题1 执行configure时提示, ./src/common/memory_allocator.h:50:51: fatal error: third_party/lss/linux_syscal ...

  8. redis的源码编译安装+发布订阅+RDB持久化

    redis的源码编译安装+发布订阅+RDB持久化 转载于:https://www.cnblogs.com/zwq-/p/10420455.html

  9. Qt源码编译aarch、loongarch等架构可参考

    前言: 我的建议是:编译环境一定要有网络,依赖的包才可以方便安装!!! 当然无网络,也可在有网络的相同架构系统下将相应包下载,详情可参考 Debian包管理则参考 Debian离线包安装离线源制作 下 ...

  10. FFmpeg学习之八(FFmpeg源码编译)

    FFmpeg学习之八(FFmpeg源码编译) Mac下 FFmpeg源码编译 安装 1. 使用终端安装FFmpeg 2. 手动编译 2.1 编译环境 - Xcode 2.2 安装依赖库 2.3 安装F ...

最新文章

  1. 2019年4月最新勒索病毒样本分析及数据恢复
  2. mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL
  3. jquery版本冲突问题
  4. firefox下可恶的value
  5. 流程图伪代码计算机语言,流程图与伪代码 PPT课件
  6. 最高效的进(线)程间通信机制--eventfd
  7. 以太坊java接口_java以太坊库web3j文档
  8. android surface windows,【技术攻略】s3 硬盘android+windows10双系统
  9. mutiset HDOJ 5349 MZL's simple problem
  10. 在国企工作30年,单位现在协商买断工龄,3000/年该走吗?
  11. js采集图片批量下载
  12. 把PC上的蓝牙适配器模拟成蓝牙GPS(转贴)
  13. 通达信标记符号_通达信各种符号
  14. 我曾经遇见过一个我最想照顾一生的女孩,后来……没有后来
  15. Auto.js调试:使用雷电模拟器的网络模式进行调试
  16. 如何解决layui弹出层闪退的问题
  17. java记事本(一)
  18. [error] invalid array assignment
  19. 服务器上的几U是什么意思
  20. C语言函数大全-- o 开头的函数

热门文章

  1. 天朝理工学院SQL脚本
  2. linux centos dhcpd进程,centos7 – 如何在Centos 7上忽略dhcpd中未使用的网络接口
  3. 毕业论文开题报告撰写指南-宾夕法尼亚州立大学研究生写作中心
  4. Anaconda重装后【系统找不到指定的路径】
  5. 美国克莱姆森大学计算机专业排名,美国西北大学计算机专业排名怎么样?
  6. Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  7. 报错 UserWarning: No NMS is available. Please upgrade torchvision to 0.3.0+
  8. python所需各种库(.whl)文件网址,不用下载其它运行库,直接pip install .....whl
  9. 计划制定与管理-日事清
  10. java聚群_人工鱼群算法超详细解析附带JAVA代码