首页 > 代码库 > Linux Boost 安装, 测试程序

Linux Boost 安装, 测试程序

下载:

wget http://101.96.10.75/ncu.dl.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2
tar xf boost_1_62_0.tar.bz2 
cd boost_1_62_0/


编译安装

bash bootstrap.sh 
echo $?
./b2
echo $?
sudo ./b2 install --prefix=/tmp/haha  #/tmp/haha是我建立的目录
echo $?


chunli@linux:~$ ll /tmp/haha/
total 8.0K
drwxr-xr-x 3 root root 4.0K Oct 18 20:58 include
drwxr-xr-x 2 root root 4.0K Oct 18 20:59 lib
chunli@linux:~$ du -sh /tmp/haha/
184M	/tmp/haha/
chunli@linux:~$



写个测试程序:

root@linux:/tmp# cat main.cpp 
#include <boost/lexical_cast.hpp>     
#include <iostream>     

using namespace std;  

int main()  
{  
	using boost::lexical_cast;   

	int a=lexical_cast<int>("123");   
	double b=lexical_cast<double>("123.0123456789");   
	string s0=lexical_cast<string>(a);   
	string s1=lexical_cast<string>(b);   
	cout<<"number: "<<a<<"  "<<b<<endl;   
	cout<<"string: "<<s0<<"  "<<s1<<endl;   
	int c=0;   
	try{    
		c=lexical_cast<int>("abcd");   
	}    
	catch(boost::bad_lexical_cast& e){    
		cout<<e.what()<<endl;   
	}  
	cout << "Hello \n";

	return 0;   
}

root@linux:/tmp# g++ main.cpp && ./a.out 
number: 123  123.012
string: 123  123.0123456789
bad lexical cast: source type value could not be interpreted as target
Hello 
root@linux:/tmp#



编译报错:

chunli@ubuntu14:/tmp$ g++ main.cpp 
main.cpp:1:39: fatal error: boost/lexical_cast.hpp: No such file or directory
 #include <boost/lexical_cast.hpp>     
                                       ^
compilation terminated.



解决办法:指定头文件

chunli@ubuntu14:/tmp$ g++ main.cpp -I haha/include/
chunli@ubuntu14:/tmp$ ./a.out 
number: 123  123.012
string: 123  123.0123456789
bad lexical cast: source type value could not be interpreted as target
Hello 
chunli@ubuntu14:/tmp$


永久的解决办法,放到系统的路径下

chunli@ubuntu14:/tmp$ sudo mv haha/include/* /usr/include/
chunli@ubuntu14:/tmp$ sudo mv haha/lib/ /usr/lib/
chunli@ubuntu14:/tmp$ g++ main.cpp  && ./a.out 
number: 123  123.012
string: 123  123.0123456789
bad lexical cast: source type value could not be interpreted as target
Hello 
chunli@ubuntu14:/tmp$




本文出自 “魂斗罗” 博客,谢绝转载!

Linux Boost 安装, 测试程序