eclipse加入boost linux,Eclipse+MinGW环境下boost库的编译和使用

搞了一下午,终于搞定了,每一滴汗都是当初学习的时候脑袋进的水。这几天快傻了,所以找点轻松的事情做做,装点新东西,没事就喜欢干点没用的。

准备工作:

1已经安装好的MinGW和Eclipse(不用安装,下载下来解压就用)

2Eclipse的压缩包

3环境变量是配置好的,具体怎么做自己百度,这不是重点,是送分题

4保证c盘有500M空间(最好是有,没有也可以)

我要说三个问题:

第一个是Boost的安装,编译

第二个是Eclipse与MinGW的匹配

第三个是Eclipse中的编译选项的配置

Boost的安装,编译

首先我们到官网下载Boost的压缩包http://www.boost.org/,我用最新版boost 1.61.0

c7ccc89f11aed15085e2a381a80f87eb.png

下载完就是下面的这个东西,解压,爱放到哪随你

05d6ef6507d99bb834be5391556de450.png

解压出来就是这么个东西:

71dd468cb36ab446de219afb6d082e65.png

然后我们需要这个文件(booststrap.bat):

1c8834ae801cfbae71086e6ff5be6feb.png

运行这个东西之后,你的文件夹里就会多出来这两个文件:

a778233340439a615be0eb2035b921a5.png

命令行下进入该文件夹,输入命令bjam “toolset=gcc” install

11fc59b99fe47e1d6f1e870c880e3695.png

然后等ta完成,我的电脑用了10分钟不到,根据电脑配置不同,速度差距很大

到C盘根目录下面找到下面的文件夹

902675967f73435777318db0d6bdae9a.png

注意啦!

1.将C:\Boost\include\boost-1_61下面的boost文件夹拷贝到MinWG安装目录下的include目录中

如我的是:

D:\program\G++\include

我就这么干了

fefbbeab87cba985d57abb8f7e9e4aec.png

2.将C:\Boost\include\boost-1_61\lib下面的所有文件拷贝到MinWG安装目录下的lib目录中

如我的是:

D:\program\G++\lib

我就这么干了(文件太多,截图放不下,意思到了就可以了)

eec89664a3e3c2c886eebfdddd8a6a6c.png

注意:如果你的C盘没有500M,那也无所谓,但你也得有500M无论在哪

运行bjam的时候命令改成下面:

bjam   toolset=gcc Duxing

然后到本目录(解压Boost的那个文件夹)下的Duxing(愿意叫什么你随意)文件夹下面找include和lib目录 明白?

Eclipse与MinGW的匹配

把我们的编辑器请出来:

392129f4552f5742a7b9acaae74f04a4.png

a17425abd2537b78ef5ae5ad9f70ee99.png

打开,第一次打开需要设置工作空间(workspace),怎么叫你随意,我的英文很水。

4228fcd5184860e4d4d83c138f36bd62.png

新建一个C++项目

958f6837874e583741ed9c4ed76a6b44.png

设置项目名称和编译器:

9a77ac01280cb50f327059fb294437a5.png

点左边这个小按钮,展开项目管理的小窗口

528c7a9af91f1aa6c38e012652a86211.png

Eclipse中的编译选项的配置

选择这个“Properties” 怎么翻译我也不知道

4dd44cfd8a85c30d2ad5e1013a47ffd3.png

我们打开C/C++ Build-Settings-MinGW G++ Linker-Libraries

198d0ef57101d6660ccee5a2e8767f40.png

窗口别关,先看下面

我们一会儿要用到的是正则表达式的库  所以我们只加载正则表达式的库文件,其他类似,自己查资料

我们在D盘下面刚刚安装的lib下面找到正则表达式的库

b2edcb208d3650dae1e55183733f5f1f.png

这两个就是正则表达式的库了

58fb5b18197145e0b82729497a4f2d88.png

注意啦!

打开我们刚刚留下的窗口分别加入库的查找路径和需要引入的库

注意:

我们文件中的文件名是“libboost_regex-mgw48-mt-d-1_61.a”

但是这里填写的却是“boost_regex-mgw48-mt-d-1_61”

这里一定注意

71bc2a2ad136c873f75606ebd221e86c.png

然后我们点击ok

在我们的项目上点击右键 选择New  选择File

b54210510044cfed2f6da201666c876c.png

输入文件名main.cpp 点击Finish

b38c7a844643a55309c1fd8fac9b7081.png

尾声

输入下面的代码进行测试

main.cpp

#include

#include

#include

#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<

//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<

}

else

{

cout<

}

cout <

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#include

#include

#include

#include "boost/regex.hpp"

/**

*代码版权归原作者所有,原作者请看《参考资料》,本人稍加修改删掉了没有用的include,对代码进行了排版,下面的图片中使用的是未经修改的,也可以编译通过

*感谢作者提供的代码和方法

*@author jiafu1115

*来源http://blog.csdn.net/jiafu1115/article/details/9134777

*整理:独行

*/

usingnamespacestd;

usingnamespaceboost;

regexexpression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");

intmain(intargc,char*argv[])

{

std::stringin;

cmatchwhat;

cout<

//getline(cin,in);

in="select name from table";

if(regex_match(in.c_str(),what,expression))

{

for(unsignedi=0;i

cout<

}

else

{

cout<

}

cout<

return0;

}

8e423721cf3e61743204e1b847aeb1e1.png

编译

19b121490174e1a7032a1757df8664a2.png

运行

e5b2908ef6c6e67a38ddebba651f2cac.png

结果出来了

f8486d8bfe2ef14af29fa2c7eb44d132.png

很简单   但是有的时候某些简单的东西真的会让人头大。

总结一下我犯得错误:

1.因为没有认真看代码,直接复制过来网上的来测试,结果路径有一点不对,找了5分钟

2.当初学GCC编译选项的时候就已经知道了-l后面是不用加(lib)(库名)(.a) 中()中的部分的,也就是说只要(库名)(不带“()”)就可以了

3.eclipse不熟悉,盲目的使用了一个不熟悉的编辑器(IDE),因为系统中原来就是由MinGW的,所以这个不用安装,我心想Eclipse一个工具能有多复杂,谁知道就是这个编辑器,让我多花了将近一个小时的时间,如果只用cmd方式那么应该早就完成了

参考资料:

Post Views:

3,727

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值