【发布时间】:2019-05-17 06:31:32
【问题描述】:
我正在尝试交叉编译 Boost,但最终出现以下错误。
我做了以下步骤:
- 解压 boost_1_68_0.tar.bz2
- 执行引导
-
编辑 user-config.jam 使用
gcc:arm:arm-fslc-linux-gnueabi-g++ - 已执行
./b2 --prefix=install toolset=gcc-arm --user-config=./user-config.jam - 也执行了
./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.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这样的错误很多。
【问题讨论】:
-
您可能应该添加一个
--with-sysroot(或 Bjam 等效项)来告诉工具链在哪里可以找到标头和库。 -
@jww 究竟要添加什么路径到
--with-sysroot -
我不使用 Boost,所以我不知道如何使用他们的工具。我有很多交叉编译的经验。根据您的问题记录,您没有提供 sysroot,但您需要提供一个,或者手动传递标头和库位置。 (当我快速搜索 Boost、Bjam 和 sysroot 时,我发现了很多匹配项。你为什么没有尝试过?)
-
我包括 sysroot 但它仍然给出相同的错误,但我的工具链中有一件事要说,有一个 boost 1.66 版本,我正在尝试 1.68 版本,但我提到这些paths.so,有没有人认为这可能是我的问题
-
拜托,任何人都可以帮助我,我已经坚持了一周
标签: linux boost cross-compiling