Eclipse+Mingw+Boost 环境搭建
一、安装CDT插件
Eclipse是用Java的swt开发的,所以需要java虚拟机才能运行,jdk的配置方法网上一大堆,这里就不细说了。安装CDT的方法简单提一下,到Help->Eclipse MarketPlace下搜索CDT,然后安装即可。
具体过程可以参考百度经验
二、MinGW配置
首先要装一个MinGW,下载下来后解压安装,并将MinGW下的bin目录加入环境变量Path中(最好加在前面,防止和VC/.NET之类的make命令冲突)。
终端中输入gcc -v,如果出现以下内容,则表示配置成功

接下来将bin目录下的mingw32-make.exe改名为make.exe这是因为eclise内部默认使用这个文件名。打开终端输入make,如果提示
make:***No targets specfied and no make file found stop
则表示修改成功
如果不想改名,还有一个办法是 到Window->Preference->New C/C++ Project Wizard->Make Project下把Use default build command的勾去掉,将下面的command改为mingw32-make

要想在Eclipse里写代码,还需要多配置两个环境变量,一个是头文件的路径设置C_INCLUDEDE_PATH=E:\MinGW\include;另一个是MinGW的库文件,设置LIBRARY_PATH=E:\MinGW\lib,这样eclipse新建C++项目时就会自动把MinGW的头文件加载到项目中。

三、用MinGW编译Boost
1.在下载好解压后的boost_1_59_0(1_59_0是版本号)目录下,有一个bootstrap.bat脚本,我们输入bootstrap gcc进行编译

2.编译成功的话会在当前目录下生成一个bjam.exe:

3.接着我们要使用bjam.exe编译boost。
bjam install/stage --toolset=gcc --without-python --stagedir="E:\boost"
toolset表示所用的编译器,由于我们装的是MinGW,所以是gcc。install/stage的区别是:stage只会生成库文件(.a文件),而instal还会生成include目录,include目录包含的东西实际上就是解压后的boost目录,所以直接用之前解压的boost目录里的东西就行,一来节省编译时间,二来节省磁盘空间。with/without指定编译/不编译哪些库stagedir/prefix:stage时用stagedir,install时用prefix,如果不指定默认装在C盘。
这里我用的还是install命令,安装在D盘,命令为bjam install --toolset=gcc --prefix="D:/boost"
4.等待一段时间后(大概20分钟),会在指定目录下生成一个boost文件夹,里面放着生成的.a文件(这里和参考链接给的教程里说的不一样,因为我用的是gcc所以生成.a文件,如果用msvc编译出来的应该就是.dll文件了)。

可以通过bjam --show-libraries查看安装的库

5.将编译好的boost目录拷贝到E:\MinGW下
四、在Eclipse中使用boost
1.新建一个C++项目,然后在项目上右键选择Properties
2.打开"C/C++ General" 标签下的"Paths and Symbols",确保configuration是 "Debug [Active]"
3.在Includes菜单下的language框里选择GNU C++,加入boost的头文件路径

4.在Library Path菜单里添加boost的库文件路径

到此,boost就已经配置好了,我们接下来测试一下其中的正则表达式模块。
#include<iostream>
#include<boost/regex.hpp>
using namespace std;
using namespace boost;
int main(int argc, const char* argv[])
{
string pattern("[^c]ei");
pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*";
regex r(pattern);
smatch results;
string test_str = "receipt freind theif receive";
if(regex_search(test_str, results, r))
cout << results.str() << std::endl;
}
这段代码的作用是找到包含ei但不包含cei的单词,正确输出结果是 freind。
运行之前,需要添加regex的库文件libboost_regex-mgw34-mt-d-1_59.a,以免ld链接不成功。
还是右键Properties,找到C/C++ Build->Settings,选择MinGW C++ Linker->Libraries,点击add按钮输入boost_regex-mgw34-mt-d-1_59(注意去掉开头的lib,否则找不到)

然后build,再run,就可以看到结果了:

参考:
Eclipse+CDT+MinGW
boost 1.56.0 编译及使用
测试代码出处
Eclipse+Mingw+Boost 环境搭建的更多相关文章
- Eclipse+MinGW+Boost环境搭建
一.编译 运行 .bat 生成bjam.exe 运行:bjam --build-type=complete toolset=gcc stage 二.配置 配置eclipse -L Path加入链接库位 ...
- Eclipse swt开发环境搭建
原料: eclipse swt.下载链接为: Eclipse 4.6.2 Release Build: 4.6.2 配置说明: Developing SWT applications using Ec ...
- Eclipse JSP/Servlet 环境搭建
Eclipse JSP/Servlet 环境搭建 本文假定你已安装了 JDK 环境,如未安装,可参阅 Java 开发环境配置. 我们可以使用 Eclipse 来搭建 JSP 开发环境,首先我们分别下载 ...
- Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建
Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...
- eclipse python开发环境搭建
eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...
- ECLIPSE JSP TOMCAT 环境搭建
ECLIPSE JSP TOMCAT 环境搭建(完整) 要学习一门语言,首先要做的就是搭建环境,然后能写一个小的Demo(类似Helloworld),不仅可以建立信心,而且还可以为之后的学习搭建一个验 ...
- JSP-Runood:Eclipse JSP/Servlet 环境搭建
ylbtech-JSP-Runood:Eclipse JSP/Servlet 环境搭建 1.返回顶部 1. Eclipse JSP/Servlet 环境搭建 本文假定你已安装了 JDK 环境,如未安装 ...
- 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建
在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...
- eclipse+android+opencv环境搭建的步骤
---恢复内容开始--- 2016年4月12日编写 一.第一步:搭建eclipse开发环境 1.在eclipse官网中下载eclipse.zip进行解压即可.没有版本要求,但要和电脑的位数相匹配.如: ...
随机推荐
- 关闭BrowserLink-解决异常/arterySignalR/ping未找到
在使用VS2013 MVC5开发时经常在浏览器的调试窗口看到错误信息,并且每隔两分钟就会出现错误提示:"/365e6ccac83b4cceadee2752a93b81ae/arterySig ...
- Codeforces Round #378 (Div. 2) D - Kostya the Sculptor
Kostya the Sculptor 这次cf打的又是心累啊,果然我太菜,真的该认真学习,不要随便的浪费时间啦 [题目链接]Kostya the Sculptor &题意: 给你n个长方体, ...
- HDU 4135 Co-prime(容斥原理)
Co-prime 第一发容斥,感觉挺有意思的 →_→ [题目链接]Co-prime [题目类型]容斥 &题意: 求(a,b)区间内,与n互质的数的个数. \(a,b\leq 10^{15}\) ...
- Sqlite: FOREIGN KEY constraint failed on remove的错误原因。
sqlite外键约束中.restrict约束:如果要删除父表,则子表需空. 如果没有定义约束.会报错,需设置一个约束.
- revealapp 用于调试IOS的UI
下载地址(官网):http://revealapp.com/ 破解方法:http://blog.csdn.net/ljb_wh/article/details/39345599
- LINQ inner join
用的EF,需要联合查询,否则就需要反复的访问数据库 var query = from fp in db.Form_ProcessSets join n ...
- Android UI 绘制过程浅析(二)onMeasure过程
前言 View的绘制过程分为 measure.layout.draw三个步骤,接下来对这三个步骤逐一进行研究. measure方法的签名 public final void measure(int w ...
- Oracle EBS Java Applet报错:找不到类
Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...
- [Appium] 使用Appium过程中遇到的各种坑
以下问题都是以ios为背景: 1. 问题: Case: 在页面S1上,点击元素A后,判读B元素是否出现. Detail:一开始通过Appium Inspector, 可以找到B元素,所以直接取该元素的 ...
- jQuery基础 -- 如何判断页面元素存在与否
在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById(&q ...