天天看點

boost_1_75_0在linux下的交叉編譯

工作中遇到的這裡記錄一下,大家可參考。希望對大家有用

下載下傳boost_1_75_0.tar.gz這個資源包下載下傳連接配接:https://download.csdn.net/download/u011186256/14808828

這個連接配接是我上傳的,為了自己記錄一下。

1、解壓指令tar -xzvf boost_1_75_0.tar.gz

2、進入boost_1_75_0目錄

3、./bootstrap.sh --prifix=要安裝的目錄例如

      ./bootstrap.sh --prifix=arm 其中arm是要安裝的目錄

4、生成有 b2 和 bjam ,以及一個 project-config.jam 的檔案,修改project-config.jam的一行(指定自己的編譯器):

     其中bjam 在tools/build/src/engine/bjam目錄下,要拷貝到與boost_1_75_0目錄下

修改project-config.jam檔案制定編譯鍊,下圖是修改完的:

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

{

    using gcc : : /opt/prebuilts/gcc/linux-x86/arm/arm-linux-gnueabihf-7.2.1/bin/arm-linux-gnueabihf-gcc ;

}

下圖中的紅框是空格,不能删除

boost_1_75_0在linux下的交叉編譯

5、.執行 ./bjam 即可,這是編譯,建立的 lib 檔案預設在 stage 檔案夾

6. 編譯完後,執行 ./bjam install 即進行安裝,我的上面 --prefix=arm 指定的目錄就是安裝目錄

生成的lib與include在arm中。

7、測試demo測試檔案位置在arm\include\boost

#include <iostream>

#include <boost/asio.hpp>

int main()

{

  boost::asio::io_context io;

  boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));

  t.wait();

  std::cout << "Hello, world!" << std::endl;

  return 0;

}

8、編譯指令:arm-linux-gnueabihf-g++ demo.cpp -I . -L ../lib/ -lpthread

boost.asio相關治療連接配接:https://mmoaay.gitbooks.io/boost-asio-cpp-network-programming-chinese/content/Chapter1.html

繼續閱讀