背景:

自己电脑是win7 32bit的,而想要Redis4.0的版本,但是在网上没找到,所以自己干脆download源source,自己build,安装。

最后,目前达到的状态是,windows下source编译失败,无法成功安装,lunix下source编译成功,安装成功。

接下来自己,记录一下,这个过程踩的雷,碰到的坑,也不枉自己花了两个晚上,弄出来的东西。

说说自己windows下的source编译

1.Git

首先安装了一个,Git,官网上可以很容易找到地址。

安装步骤如下:

这之后点击install,就可以安装了。完成后,还需要一个东东,就是MinGW。

2.MinGW

这货是什么?有什么用?简单的话说,它是个精简的windows平台编译器,编译出的可执行文件可以独立在windows下运行。举个例子,写个C文件,通过这个东东就可以直接运行。

接下来说一下它的安装,留作记录,以免以后使用到。

下载的官网:http://www.mingw.org/

安装下载器,之后安装。。。

在安装过程中一步是组件的安装,很重要。

图中,第一行的gcc那个东西一定要勾选进行下载,切记。其他的组件的安装,可以等到有需要的时候,再进到组件安装页面,重新下载。

MinGW安装完成后,要记得设置程序的环境变量。

之后,在windows命令行下,输入gcc -v就会有提示信息,证明,安装成功。如下图:

3.编译redis过程中踩到的坑

第一,当时就在网上查找编译方法,之后发现,最权威最详细的方法,就在redis源source下的Readme文件中。以后一定要多读读readme文件才好。

第二,编译的过程中使用命令(mingw32-make CFLAGS="-m32 -march=native" LDFLAGS="-m32")操作时,出现错误(sys/XXX.h文件找不到)。查了好久,才发现这个文件在Lunix系统或别的系统中有,但是windows系统没有。(心中无数个草泥马在奔腾!)我又重新看了一下readme文件,原文如下:

Building Redis
--------------

Redis can be compiled and used on Linux, OSX, OpenBSD, NetBSD, FreeBSD.
We support big endian and little endian architectures, and both 32 bit
and 64 bit systems.

It may compile on Solaris derived systems (for instance SmartOS) but our
support for this platform is *best effort* and Redis is not guaranteed to
work as well as in Linux, OSX, and \*BSD there.

TMD,文中说可以用于XXX,XXX系统,其中没有windows。。。。。

windows不行,那么好吧,Lunix走起。可是我也不能立马安装Lunix系统或是弄个虚拟机,嫌太费事了。恩恩,Cygwin上场了。

3.Cygwin

它是一个运行在windows系统下的类似UNIX系统的虚拟环境。

官网下载地址:https://cygwin.com/install.html

下载之后,安装,也是一路next,到了选择安装package的时候,Devel组件下的gcc的相关内容。注意,不可以安装所有的package,因为有很多你不会用到,而且所有package的大小有几十个G。

安装完成后,再按照redis中readme文件中的提示来操作,

make distclean

make CFLAGS="-m32 -march=native" LDFLAGS="-m32"

make test

make install

发现分分钟就搞定了。

在这里再说一下,cygwin终端显示英文。

首先,set LANG=C.UTF-8,设置这个变量,之后,修改Cygwin/etc/profile.d/lang.sh文件,

原先:

test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=$(/usr/bin/locale -uU)

修改后:

test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=C.UTF-8

之后,重启cygwin,就会发现终端显示的都是英文了。

再说一下,利用Cygwin控制台,用命令安装一些工具。

比如说,在Cygwin控制台wget这个命令没有,怎么办?下面这个命令就可以帮你搞定:

setup-x86.exe -q -P git,wget

前面是安装包的名称,后面是要安装的东西,有多个工具要被安装时,中间用逗号隔开。(但是yum这个包好像不能安装,具体原因,我暂时没有查明。)对于-p等参数有疑问,可以用setup-x86.exe --help 来获得帮助。

以上就是两天晚上的总结,爬坑爬的心里拔拔凉啊!!!!。。。。。

Redis(三)源source编译的更多相关文章

  1. redis 的源码编译安装

    首先我们下载软件包到指定的目录下 tar -zxvf redis-2.8.19.tar.gz cd redis-2.8.19 make make PREFIX=/usr/local/redis ins ...

  2. 使用 Redis 源码编译发布 Windows 版 Redis For Windows 发行包

    Redis 是个高性能的键值数据库,现在日常项目开发过程中,目前个人开发项目基本都会用到 Redis,主要是用来做 缓存 和 分布式锁 的底层支持,个人喜欢用 .NET 技术体系,所以一般部署也是用 ...

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

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

  4. CentOS 7.4 源码编译安装 Redis

    一.CentOS 7.4  源码编译安装 Redis 1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar ...

  5. 源码编译Redis Desktop Manager ---(转载)

    精美文章转载: 版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议.转载请注明出处!原文链接:https://kany.me/20 ...

  6. 源码编译Redis Desktop Manager | 懒人屋

    原文:源码编译Redis Desktop Manager | 懒人屋 源码编译Redis Desktop Manager  2.3k  字    10  分钟    2019-10-10 文章背景 本 ...

  7. TensorFlow Python2.7环境下的源码编译(三)编译

    一.源代码编译 这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_ ...

  8. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x

    笔记 2.源码编译安装Redis4.x     简介:使用源码安装Redis4.x和配置外网访问 1.快速安装  https://redis.io/download#installation      ...

  9. 麒麟系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12

    前言   上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到从源码编译的Qt,所以本篇如何在银河麒麟系统V4上编译Qt5.12源码.   银河麒麟V4版本   系统版本:   Qt源码下载    ...

随机推荐

  1. laravel框架5.2版本组件包开发

     一.包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2  如同文件夹一样,包也采用了树形目录的存储方式.同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的, ...

  2. 基于Redis+MySQL+MongoDB存储架构应用

    摘  要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...

  3. Unity3D在C#编程中的一些命名空间的引用及说明

    System包含用于定义常用值和引用数据类型.事件和事件处理程序.接口.属性和处理异常的基础类和基类.其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环 ...

  4. python之路-网络基础

    1.什么是网络: 通过网络设备将各个设备连接在一起,使用协议让设备之间可以通信,共享资源,这些组成了一个网络. 2.osi七层模式: 国际标准化组织(ISO)创建OSI(开放系统互联)参考模型,希望不 ...

  5. MYSQL数据库字母数字混合字段排序问题

    对MySQL数据表里的一个字符型字段排序,其内容格式为一位字母+顺序数字.数字没有前导零,长度不固定.这种含字母的数字序列,排序出来的结果和我们想要的结果是不一样的,因为它不是纯数字,只能按字符规则排 ...

  6. jstree使用新的

    1.首先准备jstree树的dom元素 <p id="flowList_ul" class="flowList_ul"></p> 2.初 ...

  7. Centos7创建用户su登录后显示为 bash-4.1$

    useradd name [root@localhost data]# su name bash-4.2$ [root@localhost ~]# cp -a /etc/skel/. /home/na ...

  8. REST easy with kbmMW #20 – OpenAPI and Swagger UI

    即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种 ...

  9. python点滴:判断字符串是否为合法json格式

    在一些情况下,我们需要判断字符串是否为合法json格式. 思路很简单:尝试对字符串使用json.loads(),如果不是合法json格式,则会抛出ValueError异常. 示例如下: import ...

  10. Kafka实践

    1. kafka发送方法 @Component@Import(KafkaAutoProperties.class)public class KafkaProducer { @Autowired pri ...