在windows编译MariaDB
OS: Windows XP sp3
IDE: VS2010
MariaDB: V5.5
(到目前为止2016.5,中文域(.cn)只有清华大学 TUNA 镜像源可用)
(.tar.gz为源码;.zip为执行程序)
Source: https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-5.5.49/source/mariadb-5.5.49.tar.gz
Zip: https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-5.5.49/win32-packages/mariadb-5.5.49-win32.zip
首先安装如下工具和Boost库:
(1) Bazzar
https://launchpad.net/bzr/2.5/2.5.1/+download/bzr-2.5.1-1-setup.exe
(2) Bison from GnuWin32
http://jaist.dl.sourceforge.net/project/gnuwin32/bison/2.4.1/bison-2.4.1-setup.exe
(3) Cmake
https://cmake.org/files/v3.4/cmake-3.4.3-win32-x86.exe
V3.4.3是可以在XP中运行的。
Boost库:
(1) 下载
http://www.boost.org/users/download/
当前最新版本为V1.61.0
(2) 设置系统变量
a. BOOST_HOME
C:\boost_1_61_0
b. 增加变量到path
然后执行编译:
检查系统变量path,以保证包含如下设置:
C:\Program Files\Bazaar;C:\GnuWin32\bin;C:\boost_1_61_0;C:\Program Files\CMake\bin
(1)cmake ..
Microsoft Windows XP [版本 ] (C) 版权所有 - Microsoft Corp. C:\Documents and Settings\Administrator>d: D:\>cd mariadb- D:\mariadb->mkdir bld D:\mariadb->cd bld D:\mariadb-\bld>cmake .. -- Building -- Running cmake version -- The C compiler identification is MSVC 16.0.40219.1 -- The CXX compiler identification is MSVC 16.0.40219.1 -- Check -- Check -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check -- Check -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for isnan -- Looking for isnan - not found -- Looking for snprintf -- Looking for snprintf - not found -- Looking for _snprintf -- Looking for _snprintf - found -- MariaDB -- Check size of void * -- Check size of void * - done -- Packaging as: mariadb--win32 -- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE -- Looking for isnan -- Looking for isnan - not found -- Check size of time_t -- Check size of time_t - done -- Performing Test STRUCT_TIMESPEC_HAS_TV_SEC -- Performing Test STRUCT_TIMESPEC_HAS_TV_SEC - Failed -- Performing Test STRUCT_TIMESPEC_HAS_TV_NSEC -- Performing Test STRUCT_TIMESPEC_HAS_TV_NSEC - Failed -- Looking for malloc_stats_print in jemalloc -- Looking for malloc_stats_print in jemalloc - not found -- Performing Test HAVE_WVLA -- Performing Test HAVE_WVLA - Failed -- Performing Test HAVE_WERROR -- Performing Test HAVE_WERROR - Failed -- Boost version: -- Performing Test HAVE_XUCRED -- Performing Test HAVE_XUCRED - Failed -- Looking for MFC -- Looking for MFC - found -- Configuring done -- Generating done -- Build files have been written to: D:/mariadb-/bld D:\mariadb-\bld>
(2) sql/sql_locale.cc
使用UE打开此文件并另存为同名。不同之处在于,更改“Format”!


(3) 生成
cmake --build . --config Relwithdebinfo
最后,拷贝文件。
拷贝以下两个文件覆盖到D:\progFiles\MariaDB55\bin,以替换不能在XP运行的程序。
bld\sql\RelWithDebInfo\mysqld.exe
bld\sql\RelWithDebInfo\mysqld.pdb
FAQ:
1. error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE'
在进行storage\oqgraph目录编译时发生错误。
编译日志:file:///D:/mariadb-5.5.49/bld/storage/oqgraph/oqgraph.dir/RelWithDebInfo/BuildLog.htm
Build Log
Build started: Project: oqgraph, Configuration: RelWithDebInfo|Win32
Command Lines
Creating temporary file "d:\mariadb-5.5.49\bld\storage\oqgraph\oqgraph.dir\RelWithDebInfo\RSP00015042369588.rsp" with contents
[
/O2 /Ob1 /I "C:\boost_1_61_0" /I "D:\mariadb-5.5.49\bld\include" /I "D:\mariadb-5.5.49\include" /I "D:\mariadb-5.5.49\sql" /I "D:\mariadb-5.5.49\regex" /I "D:\mariadb-5.5.49\extra\yassl\include" /I "D:\mariadb-5.5.49\extra\yassl\taocrypt\include" /I "D:\mariadb-5.5.49\zlib" /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "DBUG_OFF" /D "MYSQL_DYNAMIC_PLUGIN" /D "__WIN__" /D "_CRT_SECURE_NO_DEPRECATE" /D "_WIN32_WINNT=0x0501" /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "HAVE_CONFIG_H" /D "HAVE_OQGRAPH" /D "CMAKE_INTDIR=\"RelWithDebInfo\"" /D "oqgraph_EXPORTS" /D "_WINDLL" /D "_MBCS" /FD /EHsc /MT /Fo"oqgraph.dir\RelWithDebInfo\\" /Fd"oqgraph.dir\RelWithDebInfo\vc90.pdb" /W3 /c /Z7 /TP /wd4800 /wd4805 /wd4996 /wd4291 /MP /we4099
"..\..\..\storage\oqgraph\graphcore.cc"
"..\..\..\storage\oqgraph\ha_oqgraph.cc"
]
Creating command line \bld\storage\oqgraph\oqgraph.dir\RelWithDebInfo\RSP00015042369588.rsp" /nologo /errorReport:queue"
Output Window
Compiling...
graphcore.cc
ha_oqgraph.cc
C:\boost_1_61_0\boost/type_traits/detail/common_arithmetic_type.hpp : warning C4819: The ). Save the file in Unicode format to prevent data loss
C:\boost_1_61_0\boost/graph/named_graph.hpp() : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE'
with
[
x=false
]
C:\boost_1_61_0\boost/graph/detail/adjacency_list.hpp() : see reference to function template instantiation 'void boost::graph::named_graph::removing_vertex(Vertex,VertexIterStability)' being compiled
with
[
Graph=boost::adjacency_list,
Vertex=unsigned int,
VertexProperty=open_query::VertexInfo,
VertexIterStability=boost::graph_detail::unstable_tag
]
..\..\..\storage\oqgraph\graphcore.) : see reference to function template instantiation 'void boost::remove_vertex::config,boost::bidirectional_graph_helper_with_property>(unsigned int,boost::vec_adj_list_impl &)' being compiled
with
[
Graph=boost::adjacency_list,
VertexListS=boost::vecS,
OutEdgeListS=boost::vecS,
DirectedS=boost::bidirectionalS,
VertexProperty=open_query::VertexInfo,
EdgeProperty=open_query::EdgeInfo,
GraphProperty=boost::no_property,
EdgeListS=boost::listS,
Config=boost::detail::adj_list_gen,boost::vecS,boost::vecS,boost::bidirectionalS,open_query::VertexInfo,open_query::EdgeInfo,boost::no_property,boost::listS>::config,
Base=boost::bidirectional_graph_helper_with_property,boost::vecS,boost::vecS,boost::bidirectionalS,open_query::VertexInfo,open_query::EdgeInfo,boost::no_property,boost::listS>::config>
]
Results
Build log was saved at "file://d:\mariadb-5.5.49\bld\storage\oqgraph\oqgraph.dir\RelWithDebInfo\BuildLog.htm"
oqgraph - error(s), warning(s)
Build Log
解决办法:
注释掉named_graph.hpp(C:\boost_1_61_0\boost\graph)的314行代码。
参考文档:
1. Building MariaDB on Windows
https://mariadb.com/kb/en/mariadb/Building_MariaDB_on_Windows/
2. 关于mysqld不是有效的win32程序
http://www.cnblogs.com/xiaobin-hlj80/p/5500152.html
3. 安装boost库(Windows)
http://www.cnblogs.com/xiaobin-hlj80/p/5503842.html
在windows编译MariaDB的更多相关文章
- OGRE 2.1 Windows 编译
版权所有,转载请注明链接 OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE ...
- Windows编译ejabberd
Windows编译ejabberd(金庆的专栏)安装 erlang OTP. 添加路径到 PATH, 使 erl 可以运行.git clone ejabberd安装 rebar:git clone g ...
- 【转载】OGRE 2.1 Windows 编译
OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE: OGRE官方推出了最新 ...
- CEF3.2623使用记录:windows编译
CEF3.2623使用记录:windows编译 1:cef3.2623下载地址 2623是cef3最后一个支持xp系统的版本,且可以支持html的audio标签,可以用作对html音频的处理下载地址为 ...
- Windows 编译安装 nginx 服务器 + rtmp 模块
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
- php beast windows编译教程
git clone https://github.com/Microsoft/php-sdk-binary-tools.git c:\php-sdk cd c:\php-sdk git checkou ...
- Windows编译Nginx源码
Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊 Nginx是一款轻量级的Web 服务器.反向代理服务器.邮件服务器等等集一大串荣誉于一身的大牌人物!他 ...
- Windows编译安装OpenSSL
windows下使用vs2008中的nmake编译安装openssl的脚本build.bat: echo off & color 0A :: 项目名称 set PROJECT=openssl ...
- 专题:Windows编译x264、SDL、faac、ffmpeg过程
Windows上编译ffmpeg完整过程,包括编译x264.SDL.faac.在Windows上编译ffmpeg需要用MinGW+msys,本专题用于记录编译过程中遇到的各种问题及解决方法,转载请注明 ...
随机推荐
- SecWeek
“叮铃铃,叮铃铃”清晨闹钟如期而至,每天的这个时候都会是一天中最头痛的时刻,每日坚持早起,渐渐已经开始习惯,扶着沉重的额头,侧身翻起,会觉得世界都在天旋地转. 一个人,悄悄的开门,悄悄的刷牙洗脸,然后 ...
- java数组引用
public class Arriy { public static void main(String args[]){ int data[]=new int[3]; data[0]=10; data ...
- 关于Cookie的 工具类
import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; ...
- kali linux 安装nvidia
开始安装之前需要说明一下几点: 1.安装闭源显卡驱动有一定风险,比如黑屏或者无法进入图形界面什么的.如果您很害怕折腾,而且不在Linux系统中玩开源游戏(比如Nexuiz)或看高清电影,默认的nouv ...
- Zookeeper 的学习与运用
引子 云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点? ...
- 获取当前3Ds MAX版本
昨天看到群里有人问,并贴出了飞浪大大的源码,又对比了一下自己以前写的,顿时觉得弱爆了哈哈~ 飞浪: fn getVer = ( v = (maxversion())[] / then return v ...
- 开机自动执行脚本 与 update-rc.d
http://coderbee.net/index.php/linux/20130524/141 update-rc.d script_name defaultsupdate-rc.d s ...
- SSH框架简化(struts2+spring+hibernate)
目的: 通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: 1.运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91 ...
- JAVA之Forward 和 Redirect的区别
1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址 ...
- HTML5桌面通知:notification
最近由于公司业务需要,领导要求IM消息有像网页微信那样有新消息桌面右下角弹出一个提示框的效果!由于自己才疏学浅,一时还没明白微信是怎么实现的!所以只能问百度(因为懒得FQ)咯! 在网上搜索了N久,心都 ...