MongoDB源码编译

本人编译的版本编译的版本为mongodb2.6分支,目前MongoDB3.0已经发布,编译步骤和2.6的差不多,不过3.0版本要求编译器支持c++11标准,所以如果是在Linux平台下编译,必须先升级GCC到4.8.2版本,在Windows下编译需要Visual Studio 2013 Update 2以上版本。

MongoDB源码下载地址: 源码下载

2.6版本源码编译使用Scons,所以需要准备以下软件:
Python 2.7.9 : 点此下载
Scons 2.3.4: 点此下载
Windos平台-VS2010以上版本: 点此下载
Linux平台-GCC: 点此下载

Windows下软件安装说明:
1, Python安装目录中不能有空格,也就是不能放在“Program Files”类似目录中,使用默认目录就可以。
2, Python安装完成后需要配置环境变量,在PATH后面增加”;D:\Python27”(此处根据自己目录配置)。
3, 先安装Python,然后安装Scons,安装完成后配置环境变量”;D:\Python27\Scripts”。

Windows下编译:
开始菜单中找到Visual Studio Tools,然后打开VS2013 x64 Native Tools Command Prompt(VS2013 x64 本机工具命令提示),cd到源码目录,然后输入“scons all –64 -j4”即可开始编译, 如果只是需要MongoDB中某个模块,则可以”scons mongod –64 -j4”。

说明:
1, 源码不要放在中文目录下面,这个是我个人编译时候犯的错误,导致编译时候出现”C++ compiler $CC does not work”错误,不知道和我自己电脑有没有关系。
2, 在Windows上编译2.6版本时需要加上”–64”命令,否则会出现”error : You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64”错误,这个是MongoDB的BUG,点此查看
3, “-j4”命令是为了加快编译速度,“4”问自己电脑CPU数量,这个命令使用多进程编译。

Linux下软件安装说明:
笔者个人为电脑为Centos6,默认已经安装Python,只需要升级就行,我自己下载了Python源码然后编译升级。
1, Python编译升级: 在终端中cd到Python源码目录,运行./configure, 再运行make install即可。
2, Scons安装: 在终端中cd到Scons目录,运行”python setup.py install”即可。

Linux下编译:
在终端中cd到MongoDB源码目录,然后直接运行“scons all –64 -j4”即可。

说明:
1, 如果是使用“all”命令编译,则源码所在目录挂载的分区内存最好大于30G,不然会编译一半提示内存不足而终止。

 

%23%23%20MongoDB%u6E90%u7801%u7F16%u8BD1%0A%0A%u672C%u4EBA%u7F16%u8BD1%u7684%u7248%u672C%u7F16%u8BD1%u7684%u7248%u672C%u4E3Amongodb2.6%u5206%u652F%uFF0C%u76EE%u524DMongoDB3.0%u5DF2%u7ECF%u53D1%u5E03%uFF0C%u7F16%u8BD1%u6B65%u9AA4%u548C2.6%u7684%u5DEE%u4E0D%u591A%uFF0C%u4E0D%u8FC73.0%u7248%u672C%u8981%u6C42%u7F16%u8BD1%u5668%u652F%u6301c++11%u6807%u51C6%uFF0C%u6240%u4EE5%u5982%u679C%u662F%u5728Linux%u5E73%u53F0%u4E0B%u7F16%u8BD1%uFF0C%u5FC5%u987B%u5148%u5347%u7EA7GCC%u5230%u65B0%u7248%u672C%u3002%0A%0AMongoDB%u6E90%u7801%u4E0B%u8F7D%u5730%u5740%3A%20%5B%u6E90%u7801%u4E0B%u8F7D%5D%28https%3A//github.com/mongodb%29%0A%0A2.6%u7248%u672C%u6E90%u7801%u7F16%u8BD1%u4F7F%u7528Scons%uFF0C%u6240%u4EE5%u9700%u8981%u51C6%u5907%u4EE5%u4E0B%u8F6F%u4EF6%3A%0APython%202.7.9%20%3A%20%5B%u70B9%u6B64%u4E0B%u8F7D%5D%28https%3A//www.python.org/%29%0AScons%202.3.4%3A%20%5B%u70B9%u6B64%u4E0B%u8F7D%5D%28http%3A//www.scons.org/%29%0AWindos%u5E73%u53F0-VS2010%u4EE5%u4E0A%u7248%u672C%3A%20%20%5B%u70B9%u6B64%u4E0B%u8F7D%5D%28http%3A//msdn.itellyou.cn/%29%0ALinux%u5E73%u53F0-GCC%3A%20%5B%u70B9%u6B64%u4E0B%u8F7D%5D%28http%3A//gcc.gnu.org/%29%0A%0AWindows%u4E0B%u8F6F%u4EF6%u5B89%u88C5%u8BF4%u660E%3A%0A1%2C%20Python%u5B89%u88C5%u76EE%u5F55%u4E2D%u4E0D%u80FD%u6709%u7A7A%u683C%uFF0C%u4E5F%u5C31%u662F%u4E0D%u80FD%u653E%u5728%u201CProgram%20Files%u201D%u7C7B%u4F3C%u76EE%u5F55%u4E2D%uFF0C%u4F7F%u7528%u9ED8%u8BA4%u76EE%u5F55%u5C31%u53EF%u4EE5%u3002%0A2%2C%20Python%u5B89%u88C5%u5B8C%u6210%u540E%u9700%u8981%u914D%u7F6E%u73AF%u5883%u53D8%u91CF%uFF0C%u5728PATH%u540E%u9762%u589E%u52A0%22%3BD%3A%5CPython27%22%uFF08%u6B64%u5904%u6839%u636E%u81EA%u5DF1%u76EE%u5F55%u914D%u7F6E%uFF09%u3002%0A3%2C%20%u5148%u5B89%u88C5Python%uFF0C%u7136%u540E%u5B89%u88C5Scons%uFF0C%u5B89%u88C5%u5B8C%u6210%u540E%u914D%u7F6E%u73AF%u5883%u53D8%u91CF%22%3BD%3A%5CPython27%5CScripts%22%u3002%0A%0AWindows%u4E0B%u7F16%u8BD1%3A%0A%u5F00%u59CB%u83DC%u5355%u4E2D%u627E%u5230Visual%20Studio%20Tools%uFF0C%u7136%u540E%u6253%u5F00VS2013%20x64%20Native%20Tools%20Command%20Prompt%28VS2013%20x64%20%u672C%u673A%u5DE5%u5177%u547D%u4EE4%u63D0%u793A%29%uFF0Ccd%u5230%u6E90%u7801%u76EE%u5F55%uFF0C%u7136%u540E%u8F93%u5165%u201Cscons%20all%20--64%20-j4%u201D%u5373%u53EF%u5F00%u59CB%u7F16%u8BD1%uFF0C%20%u5982%u679C%u53EA%u662F%u9700%u8981MongoDB%u4E2D%u67D0%u4E2A%u6A21%u5757%uFF0C%u5219%u53EF%u4EE5%22scons%20mongod%20--64%20-j4%22%u3002%0A%21%5BAlt%20text%5D%28./%u672A%u547D%u540D.jpg%29%0A%0A%u8BF4%u660E%3A%0A1%2C%20%u6E90%u7801%u4E0D%u8981%u653E%u5728%u4E2D%u6587%u76EE%u5F55%u4E0B%u9762%uFF0C%u8FD9%u4E2A%u662F%u6211%u4E2A%u4EBA%u7F16%u8BD1%u65F6%u5019%u72AF%u7684%u9519%u8BEF%uFF0C%u5BFC%u81F4%u7F16%u8BD1%u65F6%u5019%u51FA%u73B0%22C++%20compiler%20%24CC%20does%20not%20work%22%u9519%u8BEF%uFF0C%u4E0D%u77E5%u9053%u548C%u6211%u81EA%u5DF1%u7535%u8111%u6709%u6CA1%u6709%u5173%u7CFB%u3002%0A2%2C%20%u5728Windows%u4E0A%u7F16%u8BD12.6%u7248%u672C%u65F6%u9700%u8981%u52A0%u4E0A%22--64%22%u547D%u4EE4%uFF0C%u5426%u5219%u4F1A%u51FA%u73B0%22error%20%3A%20You%20cannot%20use%2032-bit%20time_t%20%28_USE_32BIT_TIME_T%29%20with%20_WIN64%22%u9519%u8BEF%uFF0C%u8FD9%u4E2A%u662FMongoDB%u7684BUG%uFF0C%5B%u70B9%u6B64%u67E5%u770B%5D%28https%3A//jira.mongodb.org/browse/SERVER-14649%29%0A3%2C%20%u201C-j4%u201D%u547D%u4EE4%u662F%u4E3A%u4E86%u52A0%u5FEB%u7F16%u8BD1%u901F%u5EA6%uFF0C%u201C4%u201D%u95EE%u81EA%u5DF1%u7535%u8111CPU%u6570%u91CF%uFF0C%u8FD9%u4E2A%u547D%u4EE4%u4F7F%u7528%u591A%u8FDB%u7A0B%u7F16%u8BD1%u3002%0A%0ALinux%u4E0B%u8F6F%u4EF6%u5B89%u88C5%u8BF4%u660E%3A%0A%u7B14%u8005%u4E2A%u4EBA%u4E3A%u7535%u8111%u4E3ACentos6%uFF0C%u9ED8%u8BA4%u5DF2%u7ECF%u5B89%u88C5Python%uFF0C%u53EA%u9700%u8981%u5347%u7EA7%u5C31%u884C%uFF0C%u6211%u81EA%u5DF1%u4E0B%u8F7D%u4E86Python%u6E90%u7801%u7136%u540E%u7F16%u8BD1%u5347%u7EA7%u3002%0A1%2C%20%20Python%u7F16%u8BD1%u5347%u7EA7%3A%20%u5728%u7EC8%u7AEF%u4E2Dcd%u5230Python%u6E90%u7801%u76EE%u5F55%uFF0C%u8FD0%u884C./configure%2C%20%20%u518D%u8FD0%u884Cmake%20install%u5373%u53EF%u3002%0A2%2C%20Scons%u5B89%u88C5%3A%20%u5728%u7EC8%u7AEF%u4E2Dcd%u5230Scons%u76EE%u5F55%uFF0C%u8FD0%u884C%22python%20setup.py%20install%22%u5373%u53EF%u3002%0A%0ALinux%u4E0B%u7F16%u8BD1%3A%0A%u5728%u7EC8%u7AEF%u4E2Dcd%u5230MongoDB%u6E90%u7801%u76EE%u5F55%uFF0C%u7136%u540E%u76F4%u63A5%u8FD0%u884C%u201Cscons%20all%20--64%20-j4%u201D%u5373%u53EF%u3002%0A%0A%u8BF4%u660E%3A%0A1%2C%20%u5982%u679C%u662F%u4F7F%u7528%u201Call%u201D%u547D%u4EE4%u7F16%u8BD1%uFF0C%u5219%u6E90%u7801%u6240%u5728%u76EE%u5F55%u6302%u8F7D%u7684%u5206%u533A%u5185%u5B58%u6700%u597D%u5927%u4E8E30G%uFF0C%u4E0D%u7136%u4F1A%u7F16%u8BD1%u4E00%u534A%u63D0%u793A%u5185%u5B58%u4E0D%u8DB3%u800C%u7EC8%u6B62%u3002

MongoDB源码编译的更多相关文章

  1. 1.EOS源码编译运行

    目前网络上都是针对老版EOS2.0源码编译的文章,我在mac上参考这些文章编译,最后发现根本就不对,最新版本只需一条命令(./eosio_build.sh,依赖库会自动安装的)即可.我根据这些文章手动 ...

  2. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  3. MySQL源码编译与初始化

    MySQL源码编译与初始化 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App,操作更方便哦 ...

  4. Android 5.0源码编译问题

    如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...

  5. Android stdio Apktool源码编译

    Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...

  6. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  7. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  8. World Wind .NET源码编译问题处理

    World  Wind  .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...

  9. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

随机推荐

  1. 为静态Checkbox动态地添加checked属性

    1.ASP.NET HTML Code: 嵌套在repeater中 " ? "checked" : "" %> /> *** 关键代码: ...

  2. bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治

    这题真是十分难写啊 不管是点分治还是括号序列都有一堆细节.. 点分治:时空复杂度$O(n\log^2n)$,常数巨大 主要就是3个堆的初始状态 C堆:每个节点一个,为子树中的点到它父亲的距离的堆. B ...

  3. PHP windows下命令行用法 学习

    php -v  查看版本 php -r "$a = 1; var_dump($a);"  执行php代码 php -r "var_dump($argv);" a ...

  4. js showModalDialog打开新的页面给原页面传值问题

    a.html中打开一个新页面b.html,b.html页面给a.html中的input传一个值并将value赋给input框. a.html: <html>  <head>   ...

  5. SQLite简介

    1.SQLite简介 SQLite第一个Alpha版本诞生于2000年5月. 至今已经有9个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3. SQLite官方网站: ht ...

  6. Hibernate拦截器(Interceptor)与事件监听器(Listener)

    拦截器(Intercept):与Struts2的拦截器机制基本一样,都是一个操作穿过一层层拦截器,每穿过一个拦截器就会触发相应拦截器的事件做预处理或善后处理. 监听器(Listener):其实功能与拦 ...

  7. JBPM学习(五):流程变量

    1.启动流程实例 // 启动流程实例 @Test public void startProcessInstance() { // 使用指定key的最新版本的流程定义启动流程实例 ProcessInst ...

  8. jquery如何让滚动条默认在最底部

    $(document).ready(function() { $("#content").scrollTop($("#content")[0].offsetHe ...

  9. Top 10 Mistakes Java Developers Make--reference

    This list summarizes the top 10 mistakes that Java developers frequently make. #1. Convert Array to ...

  10. DiscreteSeekBar使用简介,一个带气泡的SeekBar

    android自带的SeekBar样式比较古板,如果我们想让自己的SeekBar炫起来,那么可以考虑使用DiscreteSeekBar.DiscreteSeekBar是GitHub上的一个开源控件,地 ...