Boost 库交叉编译问题

Issue with Boost libraries cross compilation

我正在尝试交叉编译 Boost,但我遇到了以下错误。

我已经完成了以下步骤:

  1. 解压缩boost_1_68_0.tar.bz2
  2. 已执行Bootstrap
  3. 编辑用户-config.jam 使用

    gcc:arm:arm-fslc-linux-gnueabi-g++
    
  4. 已执行./b2 --prefix=install toolset=gcc-arm --user-config=./user-config.jam
  5. 也执行了./bjam --prefix=install toolset=gcc-arm --user-config=./user-config.jam

但我遇到了以下错误:

    "arm-fslc-linux-gnueabi-g++"   -fPIC -pthread -O3 -finline-functions -Wno-inline -Wall  -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DNDEBUG  -I"." -c -o "bin.v2/libs/wave/build/gcc-arm/release/threading-multi/cpplexer/re2clex/aq.o" "libs/wave/src/cpplexer/re2clex/aq.cpp"

...failed gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/threading-multi/cpplexer/re2clex/aq.o...
gcc.compile.c++ bin.v2/libs/wave/build/gcc-arm/release/threading-multi/cpplexer/re2clex/cpp_re.o
libs/wave/src/cpplexer/re2clex/cpp_re.cpp:20:10: fatal error: ctime: No such file or directory
 #include <ctime>
          ^~~~~~~
compilation terminated.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

有很多这样的错误。

问题出在 sysroot 上。我们还必须通过编译器传递 sysroot:

gcc : arm : arm-fslc-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=/opt/iotgw-sdk-prod/sysroots/armv7at2hf-neon-fslc-linux-gnueabi

注意:空格应该是制表符,而不是空格。