搞了一下午,终于搞定了,每一滴汗都是当初学习的时候脑袋进的水。这几天快傻了,所以找点轻松的事情做做,装点新东西,没事就喜欢干点没用的。
准备工作:
1已经安装好的MinGW和Eclipse(不用安装,下载下来解压就用)
2Eclipse的压缩包
3环境变量是配置好的,具体怎么做自己百度,这不是重点,是送分题
4保证c盘有500M空间(最好是有,没有也可以)
我要说三个问题:
第一个是Boost的安装,编译
第二个是Eclipse与MinGW的匹配
第三个是Eclipse中的编译选项的配置
Boost的安装,编译
首先我们到官网下载Boost的压缩包http://www.boost.org/,我用最新版boost 1.61.0
下载完就是下面的这个东西,解压,爱放到哪随你
解压出来就是这么个东西:
然后我们需要这个文件(booststrap.bat):
运行这个东西之后,你的文件夹里就会多出来这两个文件:
命令行下进入该文件夹,输入命令bjam "toolset=gcc" install
然后等ta完成,我的电脑用了10分钟不到,根据电脑配置不同,速度差距很大
到C盘根目录下面找到下面的文件夹
注意啦!
1.将C:\Boost\include\boost-1_61下面的boost文件夹拷贝到MinWG安装目录下的include目录中
如我的是:
D:\program\G++\include
我就这么干了
2.将C:\Boost\include\boost-1_61\lib下面的所有文件拷贝到MinWG安装目录下的lib目录中
如我的是:
D:\program\G++\lib
我就这么干了(文件太多,截图放不下,意思到了就可以了)
注意:如果你的C盘没有500M,那也无所谓,但你也得有500M无论在哪
运行bjam的时候命令改成下面:
bjam toolset=gcc Duxing
然后到本目录(解压Boost的那个文件夹)下的Duxing(愿意叫什么你随意)文件夹下面找include和lib目录 明白?
Eclipse与MinGW的匹配
把我们的编辑器请出来:
打开,第一次打开需要设置工作空间(workspace),怎么叫你随意,我的英文很水。
新建一个C++项目
设置项目名称和编译器:
点左边这个小按钮,展开项目管理的小窗口
Eclipse中的编译选项的配置
选择这个“Properties” 怎么翻译我也不知道
我们打开C/C++ Build-Settings-MinGW G++ Linker-Libraries
窗口别关,先看下面
我们一会儿要用到的是正则表达式的库 所以我们只加载正则表达式的库文件,其他类似,自己查资料
我们在D盘下面刚刚安装的lib下面找到正则表达式的库
这两个就是正则表达式的库了
注意啦!
打开我们刚刚留下的窗口分别加入库的查找路径和需要引入的库
注意:
我们文件中的文件名是“libboost_regex-mgw48-mt-d-1_61.a”
但是这里填写的却是“boost_regex-mgw48-mt-d-1_61”
这里一定注意
然后我们点击ok
在我们的项目上点击右键 选择New 选择File
输入文件名main.cpp 点击Finish
尾声
输入下面的代码进行测试
#include <cstdlib> #include <string> #include <iostream> #include "boost/regex.hpp" /** *代码版权归原作者所有,原作者请看《参考资料》,本人稍加修改删掉了没有用的include,对代码进行了排版,下面的图片中使用的是未经修改的,也可以编译通过 *感谢作者提供的代码和方法 *@author jiafu1115 *来源http://blog.csdn.net/jiafu1115/article/details/9134777 *整理:独行 */ using namespace std; using namespace boost; regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)"); int main(int argc, char* argv[]) { std::string in; cmatch what; cout<<"enter test string"<< endl; //getline(cin,in); in = "select name from table"; if(regex_match(in.c_str(), what, expression)) { for(unsigned i=0; i < what.size() ;i++){ cout<<"str :"<<what[i].str()<<endl; } else { cout<<"Error Input"<<endl; } cout <<"成功啦 哈哈哈" << endl; return 0; }
编译
运行
结果出来了
很简单 但是有的时候某些简单的东西真的会让人头大。
总结一下我犯得错误:
1.因为没有认真看代码,直接复制过来网上的来测试,结果路径有一点不对,找了5分钟
2.当初学GCC编译选项的时候就已经知道了-l后面是不用加(lib)(库名)(.a) 中()中的部分的,也就是说只要(库名)(不带“()”)就可以了
3.eclipse不熟悉,盲目的使用了一个不熟悉的编辑器(IDE),因为系统中原来就是由MinGW的,所以这个不用安装,我心想Eclipse一个工具能有多复杂,谁知道就是这个编辑器,让我多花了将近一个小时的时间,如果只用cmd方式那么应该早就完成了
参考资料:
博客不错,嘎嘎!
博主你能把这些截图出来也真是够敬业啊