Mariadb源代码编译过程

Mariadb源代码编译过程

大家好,又见面了,我是全栈君。

从微博上看到有人提及Mariadb,搜索了一下。找到地址https://mariadb.org/,这是mysql的一个分支,由原作者维护。意在与oracle分庭抗礼,避免oracle将来毕源。

眼下版本号Mariadb 10.0.10,我下载了一个。准备编译一个64位版本号,下载地址:

https://downloads.mariadb.org/mariadb/10.0.10/

下载后用cmake编译一下试试。进入cmake图形界面,编译器选择vs12.0 win64

Warning: Bison executable not found in PATH

这是警告未安装Bison。这个软件是unix下的,windows下能够不安装。不理了。

在cmake中generate。生成相关的文件。输出选择了build文件夹:

mariadb\mariadb-10.0.10\BUILD 文件夹下一堆的东西

选all build这个cmake生成的文件试试。

编译错误。。。sql_local.cc编译错误,太常见了,与前期编译mysql官方版本号一样。

处理方式早已驾轻就熟:

1)用word打开sql_local.cc,直接保存就可以,此时文件头部,被加入了不可见字符,标示utf8编码文件;

2)改动mysql.cc文件,找到test_lc_time_sz()函数。凝视掉语句 DBUG_ASSERT(0);

这两个改动完毕后,编译成功。

编译后能够输出到install文件夹。直接运行install失败,须要一些技巧处理install

打开installproject,里面事实上是一个命令行脚本。直接copy出来做完doinstall.bat

setlocal
“C:\Program Files (x86)\CMake 2.8\bin\cmake.exe” -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd

原来是运行cmake_install.cmake

改动里面的输出文件夹为:F:\Program Files\MySQL(确实是C:\Program Files\MySQL。在C盘不太好)

直接命令行运行,发现有个宏未定义。添加:

添加了一行:
SET(CMAKE_INSTALL_CONFIG_NAME “Debug”)
还有若干pdb须要手工copy,然后就install成功了。

执行试试:
F:\Program Files\MySQL\bin
mysqld –console
F:\Program Files\MySQL\bin
mysql -u root -p
已经能够创建数据库和表了。

退出。
mysqladmin -u root shutdown

好。一切正常,后面就能够继续研究MySQL了。总之。MariaDB与mysql同源,编译方法类似。没有区别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108247.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 罗马时钟代码

    罗马时钟代码先看看效果图第一部分HTML页面代码<!DOCTYPEhtml><htmllang=”en”> <head> <metacharset=”UTF-8″> <metaname=”viewport”content=”width=device-width,initial-scale=1.0″> <met…

    2022年6月28日
    37
  • 软链接和硬链接到底有啥作用和区别呢_玉溪硬盒和软盒的区别

    软链接和硬链接到底有啥作用和区别呢_玉溪硬盒和软盒的区别前言:在网上搜索了好久,看了很多博客,某度知道等等。关于软硬链接的解释都太模糊,还有什么i节点,跨分区根本弄不明白,在查阅了书籍和询问老师后决定自己写一篇简单的博文,然初学者都能够明白的博文。一建立软链接和硬链接的语法软链接:ln-s源文件目标文件硬链接:ln源文件目标文件源文件:即你要对谁建立链接二什么是软链接和硬链接1,软链接可以理解成快捷方式。它和wind

    2022年9月30日
    1
  • Bozz Nuster_Collectivum XXVIII

    Bozz Nuster_Collectivum XXVIII这篇文章主要讲的是在Libprotobuf-mutator与LibFuzzer联合使用的基础上,加上custommutator功能。首先需要明确的是为什么要这么做,那么假设b字段只有为”FUZZ”或”PWN”两个字符的时候才能进入下一个程序分支的情况,当然LibFuzzer也可以在代码覆盖率的加持下进入下一个程序分支,但如果你通过逆向的方式已经知道了这个关键点,难道还需要等LibFuzzer跑出这两个字符串吗?

    2025年11月7日
    3
  • kafka安装

    kafka安装

    2020年11月19日
    213
  • java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程[通俗易懂]

    java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程[通俗易懂]Java教程分享Java面向对象与面向过程,面向对象:是一种看待问题,解决问题的思维方式,着眼点在于找到一个能够帮助解决问题的实体,然后委托这个实体来解决问题面向过程:是一种看待问题,解决问题的思维方式,着眼点在于问题是怎样一步步的解决的,然后亲力亲为的去解决这个问题Java是一种面向对象的语言:​用Java这门语言,可以很容易的写出具有面向对象思维方式的代码用面向对象的编程语…

    2022年7月9日
    16
  • mybatis的逻辑分页和物理分页_mybatis分页原理

    mybatis的逻辑分页和物理分页_mybatis分页原理物理分页Mybatis插件原理分析(三)分页插件Mybatis提供了一个简单的逻辑分页使用类RowBounds(物理分页当然就是我们在sql语句中指定limit和offset值),在DefaultSqlSession提供的某些查询接口中我们可以看到RowBounds是作为参数用来进行分页的,如下接口: public&lt;E&gt;List&lt;E&gt;selectLis…

    2022年9月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号