VMware Debian Linux 5.0 图形界面配置boost_1_52_0 [大三四八九月实习]

已经在windows之上配置号boost_1_54_0的环境,可偏偏在Debian Linux 5.0上配置不了,每次用./b2进行编译的时候,虚拟机就直接死掉。然后见到匿名博兄[Linux 编译boost库]文章后,念想着编译一下boost_1_52_0试试。然后就成功了,感谢152博兄。下面记录编译过程。

 

1.下载unix版本的boost_1_52_0

下载地址:boost官网unix版本 boost_1_52_0.tar.bz2

此步骤是在windows之上下载的,估计直接在VMware内Debian Linux中下载也可以。因为安装了VMware的vmware tools[VMware为图形界面安装vmware tools],故而可以将下载的压缩包直接托进Debian Linux桌面之上[Debian Linux图形界面]。

VMware Debian Linux 5.0 图形界面配置boost_1_52_0 [大三四八九月实习]_第1张图片

图表 1:Linux版本boost_1_52_0

 

2 编译配置boot库

(1)拷贝boost库至opt[此目录可选]目录解压

在Debian Linux中,桌面是普通用户的一个子目录。进入命令行终端,使用root权限将boost库压缩包拷贝到/opt下解压:

图表 2:Debian 命令行终端

各个命令的含义如下:

  • su 获取root权限,回车后可输入root账号密码就可以获取root权限。
  • cp 将桌面之上的boost压缩包拷贝至/opt目录下。
  • bzip2 Linux下压缩后缀为.bz2的文件,以上用法是将.bz2压缩包转换为.tar压缩包。

tar 解压boost_1_52_0.tar,在本目录下得到解压的boost_1_52_0。

 

(2)运行bootstrap.sh

bootstrap.sh在解压目录boost_1_52_0下,在Linux下运行此文件生成b2bjam文件(windows之上运行bootstrap.bat)。

cd boost_1_52_0

./bootstrap.sh

 

(3)修改user-config.jam文件

user-config.jam位于boost_1_52_0/tools/build/v2/下,用vi命令将其打开后可直接在文件末尾加如下两行:

using gcc ;

using mpi ;

 

(4)运行b2

b2是运行bootstrap.sh时生成的,用此命令可以根据运行bootstrap.sh后的提示用./b2 –help查看其使用方式。它的用法跟在windows之上差不多。也可以直接使用下面的简单的方式完成boost库的编译。

sudo ./b2 install

  • 不加sudo编译后boost::thread库编译会有错误。
  • ./b2 –help中可以得到,此种方式的编译会让boost库生产的所有的头文件在/usr/local/include/boost下,boost生成的库文件在/usr/local/lib下。
  • 为了能够正确使用boost库,需要将在/usr/local/lib下的boost库拷贝到/usr/lib下,在命令行终端使用cp /usr/local/lib/libboost**    /usr/lib命令完成拷贝。

这个过程会花一段时间来完成。台式机和Linux都不会花很多时间,半个小时左右,很大可能都是半个小时左。为了测试编译有没有成功,就编写一个使用boost库的程序试试,由于timer库不编译也能使用,故而是用thread库来测试一下。

 

3 boost库测试

在Debian Linux 下用gedit编写以下一段C++代码:

#include <iostream>
#include <boost/thread.hpp>


using namespace std;
using namespace boost;

#define BOOST_DATE_TIME_SOURCE
#define BOOST_THREAD_NO_LIB


//Function decalration
void print_string( const string &str );



int main(void)
{
	thread my_thread1( print_string, "hello" );
	return 0;
}



//Function definition
void print_string( const string &str )  
{  
        int i;  
  
        for( i = 0; i < str.length(); ++i ){  
        	cout << str[i];  
	}  
	cout << "\n";
          
}  

 

然后在终端编[进入终端]译boost_thread.cpp文件:

VMware Debian Linux 5.0 图形界面配置boost_1_52_0 [大三四八九月实习]_第2张图片

图表 3:编译boost_thread.cpp

进入boost_thread.cpp文件目录后就使用gcc编译该文件,与字符界面不同的是,此时gcc不用再链接C++库。只需要链接boost库。规律为:-lboost为链接前缀,libraryname为对应的库名。如编译boost库的thread程序时,编译链接参数为:-lboost_thread

 

Note Over。

你可能感兴趣的:(VMware Debian Linux 5.0 图形界面配置boost_1_52_0 [大三四八九月实习])