MongoDB源码编译
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.EOS源码编译运行
目前网络上都是针对老版EOS2.0源码编译的文章,我在mac上参考这些文章编译,最后发现根本就不对,最新版本只需一条命令(./eosio_build.sh,依赖库会自动安装的)即可.我根据这些文章手动 ...
- Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置
文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...
- MySQL源码编译与初始化
MySQL源码编译与初始化 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App,操作更方便哦 ...
- Android 5.0源码编译问题
如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...
- Android stdio Apktool源码编译
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- World Wind .NET源码编译问题处理
World Wind .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
随机推荐
- POJ2429 - GCD & LCM Inverse(Miller–Rabin+Pollard's rho)
题目大意 给定两个数a,b的GCD和LCM,要求你求出a+b最小的a,b 题解 GCD(a,b)=G GCD(a/G,b/G)=1 LCM(a/G,b/G)=a/G*b/G=a*b/G^2=L/G 这 ...
- 利用系统镜像文件安装.Net框架的方式
最近重装系统之后,在安装部分程序时需要.NET3.5框架,在线安装时间较长,网上搜到了一个很好的解决办法.利用windows系统镜像.首先将镜像加载到驱动中比如L,然后在cmd中输入 dism.exe ...
- 使用 IntelliJ IDEA 导入 Spark 最新源码及编译 Spark 源代码
前言 其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. 准备工作 1.sca ...
- ios 开发选取头像,图片库,相机,裁取图片
需要遵守的代理协议:UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate @prop ...
- 前端javascript规范文档 (http://www.xuanfengge.com/category/web)
说明:本文档为前端JS规范 一.规范目的 为提高团队协作效率,便于前端后期优化维护,输出高质量的文档. 二.基本准则 符合web标准,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序, ...
- HDU 1518 Square
解题思路:sum%4!=0 , max<sum/4 #include<iostream>#include<cstdio>#include<cstring> ...
- ubuntu压缩解压
ubuntu安装解压rar 一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简单的,只需要两个步骤就可 ...
- 适合高级Java程序员看的12本书
1.Thinking in Java 2.Head First Java 3.Java in a Nutshell 4.The elements of Java style 5.Effective J ...
- jfinal获取当前访问路径和端口号
public void generateSingleLicense() throws Exception { System.out.println(getRequest().getRequestURL ...
- 【转】C++里定义全局变量和函数常用方法
http://blog.csdn.net/niying/article/details/637084 1:在头文件是声明变量,然后在使用的文件中用exten标识. ".h": in ...