Eclipse+Mingw+Boost 环境搭建
2015-12-04 15:46
381 查看
一、安装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 编译及使用
测试代码出处
相关文章推荐
- java程序怎么在一个电脑上只启动一次,只开一个进程
- Spring线程池
- Java编程思想 之 线程协作
- eclipse 字符集 编码 设置
- Java系列:JVM指令详解(下)(zz)
- Java系列:JVM指令详解(上)(zz)
- spring--简单实现定时器(配置+注解)
- Java中volatile关键字的含义
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别
- 通过三目运算符来看JAVA的自动拆箱和装箱
- 【OSGi】Could not find bundle: org.eclipse.equinox.console问题
- Eclipse之NDK编译-- Type 'jint' could not be resolved, and JNIEnv, jclass错误解决办法
- java问题汇总
- java动态代理实现Proxy和InvocationHandler cglib
- Struts2学习——(四)访问web资源
- Java系列:关于Java中的桥接方法
- Java回炉之正则表达式
- Java回炉之基本类
- Eclipse更改文件默认编码
- java反射机制(3)- 动态类加载与重载(Load and Reload)