boost 1.57.0安裝


一. PC編譯安裝boost

boost是C++的准標准庫,其有兩種安裝方法。

1. ubuntu下,通過sudo apt-get install libboost-all-dev。

2. 通過源碼包安裝,http://sourceforge.net/projects/boost/files/latest/download?source=dlp

   下載源碼包:boost_1_57_0.tar.bz2

    1)解壓后,進入目錄,配置編譯環境

          ./bootstrap.sh

          注:boost下頭文件在目錄boost下。

     2) 編譯

          ./b2

          編譯完成后,stage下是生成的庫文件。

     3) 安裝到主機上

         sudo ./b2 install

          默認安裝頭文件/usr/local/include/boost目錄下,庫文件在/usr/local/lib目錄下。

二. ARM交叉編譯boost

    1)解壓后,進入目錄,配置編譯環境,同PC。

          ./bootstrap.sh

          注:boost下頭文件在目錄boost下。

     2) 編譯

    編譯前需配置交叉編譯器,

if ! gcc in [ feature.values <toolset> ]

{

#關鍵是以下這句的修改

using gcc : arm : arm-linux-g++ ;

#另外生成目錄或者放置編譯結果的目錄請自行另作選擇

}

          ./b2

          編譯完成后,stage下是生成的庫文件。

gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/token_ids.o
gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/wave_config_constant.o
common.mkdir bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/cpplexer
common.mkdir bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/cpplexer/re2clex
gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/cpplexer/re2clex/aq.o
gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/cpplexer/re2clex/cpp_re.o
gcc.archive bin.v2/libs/wave/build/gcc-arm/release/link-static/threading-multi/libboost_wave.a
common.copy stage/lib/libboost_wave.a
...failed updating 60 targets...
...skipped 21 targets...
...updated 975 targets...

        一般情況下,有些庫編譯不成功,編譯完成的庫都在stage/lib下。

     3) 安裝到主機上

          創建目錄/usr/arm/usr/arm/include/usr/arm/lib;將boost/這個目錄拷貝至/usr/arm/include下,將stage/lib下的庫文件拷貝至/usr/arm/lib下。

          默認安裝頭文件/usr/local/include/boost目錄下,庫文件在/usr/local/lib目錄下。

三. 編譯個小程序驗證下是否成功。

#cat test.cpp 
#include <boost/lexical_cast.hpp>
#include <iostream>

int main()
{
  using boost::lexical_cast;
  int a= lexical_cast<int>("123456");
  double b = lexical_cast<double>("123.456");
  std::cout << a << std::endl;
  std::cout << b << std::endl;
  return 0;
}
g++ -o test test.cpp
#ls
test  test.cpp
# ./test 
123456
123.456

 

參考:

http://www.xitongzhijia.net/xtjc/20150407/44268.html

http://blog.csdn.net/jwybobo2007/article/details/7242307

http://blog.csdn.net/jwybobo2007/article/details/8850008


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM