Linux 为power pc交叉编译boost库失败

Linux 为power pc交叉编译boost库失败,linux,gcc,boost,g++,cross-compiling,Linux,Gcc,Boost,G++,Cross Compiling,我需要交叉编译power-pc的boost库 请查看我为使其运行而执行的以下步骤: 我已经 下载boost 1.61 在/home/emh2下解包 并执行sudo./home/bootstrap.sh以增强builderb2 Boost.Builderb2已成功创建 交叉编译器powerpc-bt-linux-gnuspe-g++位于以下路径下: /usr/local/cross/i686 bt-linux/usr/bin/powerpc-bt-linux-gnuspe/ 交叉编译器的inclu

我需要交叉编译power-pc的boost库

请查看我为使其运行而执行的以下步骤:

我已经

  • 下载boost 1.61
  • /home/emh2下解包
  • 并执行sudo./home/bootstrap.sh以增强builderb2
  • Boost.Builderb2已成功创建
  • 交叉编译器powerpc-bt-linux-gnuspe-g++位于以下路径下:

    /usr/local/cross/i686 bt-linux/usr/bin/powerpc-bt-linux-gnuspe/

    交叉编译器的include目录如下

    /usr/local/cross/ppce500v2 bt-linux-gnuspe/usr/include/c++/5.2.0/powerpc-bt-linux-gnuspe

    /usr/local/cross/ppce500v2bt-linux-gnuspe/usr/include/c++/5.2.0/

    /usr/local/cross/ppce500v2 bt-linux-gnuspe/usr/include/

    接下来,我在/home中创建了user config.jam,内容如下:

     using gcc 
     : ppc 
     : /usr/local/cross/i686-bt-linux/usr/bin/powerpc-bt-linux-gnuspe/powerpc-bt-linux-gnuspe-g++ 
     : <compilerflags>-I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/c++/5.2.0/powerpc-bt-linux-gnuspe -I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/c++/5.2.0/ -I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/    ;
    
    使用gcc
    :ppc
    :/usr/local/cross/i686 bt-linux/usr/bin/powerpc-bt-linux-gnuspe/powerpc-bt-linux-gnuspe-g++
    :-I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/c++/5.2.0/powerpc-bt-linux-linux-gnuspe-I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/c++/5.2.0/-I/usr/local/cross/ppce500v2-bt-linux-gnuspe/usr/include/;
    
    之后,我开始交叉编译

    ./b2工具集=gcc ppc——带日志

    下面的输出表明,找不到文件/目录:

    Performing configuration checks
    - 32-bit                   : yes (cached)
    - arm                      : no  (cached)
    - mips1                    : no  (cached)
    - power                    : yes (cached)
    
    Building the Boost C++ Libraries.
    - symlinks supported       : yes (cached)
    - compiler-supports-visibility : yes (cached)
    - has_icu builds           : no  (cached)
    - lockfree boost::atomic_flag : no  (cached)
    Component configuration:
    
    - atomic                   : not building
    - chrono                   : not building
    - container                : not building
    - context                  : not building
    - coroutine                : not building
    - coroutine2               : not building
    - date_time                : not building
    - exception                : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - iostreams                : not building
    - locale                   : not building
    - log                      : building
    - math                     : not building
    - metaparse                : not building
    - mpi                      : not building
    - program_options          : not building
    - python                   : not building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - signals                  : not building
    - system                   : not building
    - test                     : not building
    - thread                   : not building
    - timer                    : not building
    - type_erasure             : not building
    - wave                     : not building
    ...patience...
    ...patience...
    ...patience...
    ...patience...
    ...found 4056 targets...
    ...updating 208 targets...
    gcc.compile.c++ bin.v2/libs/atomic/build/gcc-ppc/release/threading- multi/lockpool.o
    libs/atomic/src/lockpool.cpp:15:19: fatal error: cstddef: No such file or   directory
    compilation terminated.
    
    "/usr/local/cross/i686-bt-linux/usr/bin/powerpc-bt-linux-gnuspe/powerpc-bt-linux-gnuspe-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline    -Wall -pthread -fPIC -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1   -DBOOST_ATOMIC_SOURCE -DNDEBUG  -I"." -c -o "bin.v2/libs/atomic/build/gcc-ppc   /release/threading-multi/lockpool.o" "libs/atomic/src/lockpool.cpp"
    
    ...failed gcc.compile.c++ bin.v2/libs/atomic/build/gcc-ppc/release/threading-  multi/lockpool.o...
    ...skipped <pbin.v2/libs/atomic/build/gcc-ppc/release/threading-  multi>libboost_atomic.so.1.61.0 for lack of <pbin.v2/libs/atomic/build/gcc-ppc  /release/threading-multi>lockpool.o...
    ...skipped <pstage/lib>libboost_atomic.so.1.61.0 for lack of <pbin.v2/libs /atomic/build/gcc-ppc/release/threading-multi>libboost_atomic.so.1.61.0...
    ...skipped <pstage/lib>libboost_atomic.so for lack of   <pstage/lib>libboost_atomic.so.1.61.0...
    gcc.compile.c++ bin.v2/libs/date_time/build/gcc-ppc/release/threading-  multi/gregorian/greg_month.o
    In file included from ./boost/date_time/gregorian/greg_month.hpp:12:0,
                 from libs/date_time/src/gregorian/greg_month.cpp:14:
    ./boost/date_time/constrained_value.hpp:12:21: fatal error: exception: No    such file or directory
    compilation terminated.
    
    执行配置检查
    -32位:是(缓存)
    -arm:否(缓存)
    -mips1:否(缓存)
    -电源:是(缓存)
    构建Boost C++库。
    -支持的符号链接:是(缓存)
    -编译器支持可见性:是(缓存)
    -已生成:否(缓存)
    -无锁提升::原子_标志:否(缓存)
    组件配置:
    -原子弹:不是建筑
    -不是建筑
    -容器:不是建筑
    -背景:不是建筑
    -协同程序:不是建筑
    -协同方案2:不建
    -日期(时间):非楼宇
    -例外:不是建筑
    -文件系统:不构建
    -图:不是建筑
    -图形_并行:不构建
    -iostreams:不是建筑
    -地点:不是建筑
    -日志:建筑
    -数学:不是建筑
    -元分析:不是构建
    -mpi:不是建筑
    -程序选项:不构建
    -python:不是构建
    -随机:不是建筑
    -雷杰克斯:不是建筑
    -序列化:不是构建
    -信号:不是建筑
    -系统:不是建筑
    -测试:不是建筑
    -线程:不是建筑
    -计时器:不是建筑
    -类型_擦除:非建筑物
    -波浪:不是建筑
    ……耐心。。。
    ……耐心。。。
    ……耐心。。。
    ……耐心。。。
    …找到4056个目标。。。
    …更新208个目标。。。
    编译。C++ +bI.v2/LIbs/Actuix/Buug/GCC-PPC/Relase/Trace-多/LoopPo.o
    libs/atomic/src/lockpool.cpp:15:19:致命错误:cstddef:没有这样的文件或目录
    编译终止。
    “/usr/local/cross/i686 bt-linux/usr/bin/powerpc-bt-linux-gnuspe/powerpc-bt-linux-gnuspe-g++”-ftemplate-depth-128-O3-finline函数-Wno inline-Wall-pthread-fPIC-m32-DBOOST_ALL_NO_LIB=1-DBOOST_-DYN_LINK=1-DBOOST_-ATOMIC_-SOURCE-DNDEBUG-I.“-c-o”bin.v2/libs/ATOMIC/build/gcc-ppc/release/threading-multi/lockpool.o”“libs/atomic/src/lockpool.cpp”
    编译失败。GC++编译失败。
    …由于缺少锁池,跳过了libboost_原子.so.1.61.0。o。。。
    …跳过了libboost_-atomic.so.1.61.0,因为缺少libboost_-atomic.so.1.61.0。。。
    …跳过了libboost_-atomic.so,因为缺少libboost_-atomic.so.1.61.0。。。
    编译。C++ +BI.V2/LIbs/DATEYTIME/BUID/GCC-PPC/Relase/Trace-多/ GRGORIAN/GRGGOWO.O月
    在文件中包括自./boost/date\u time/gregorian/greg\u month.hpp:12:0,
    从libs/date\u time/src/gregorian/greg\u month.cpp:14开始:
    ./boost/date\u time/constrated\u value.hpp:12:21:致命错误:异常:没有这样的文件或目录
    编译终止。
    
    我在这里缺少什么?为什么会出现这些“没有这样的文件或目录”错误?

    首先,我要运行

    ./b2 --debug-configuration -n 
    
    如上所述。这将允许您确认b2正在获取正确的jam文件。它在/home/user/中查找user-config.jam,因此如果尚未找到,您可能需要将其移动到该目录

    此外,我发现自己需要写出
    -option1-option2等。
    可能有一种方法可以传递整串选项,但在单个
    似乎不起作用后,将它们隔开

    输出显示了正在运行的完整编译命令。您应该看到编译标志显示在那里,并可以使用它来验证jam文件语法是否正常工作

    在上面的输出中,您可以确定您的预期包含未显示

    "/usr/local/cross/i686-bt-linux/usr/bin/powerpc-bt-linux-gnuspe/powerpc-bt-linux-gnuspe-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline    -Wall -pthread -fPIC -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1   -DBOOST_ATOMIC_SOURCE -DNDEBUG  -I"." -c -o "bin.v2/libs/atomic/build/gcc-ppc   /release/threading-multi/lockpool.o" "libs/atomic/src/lockpool.cpp"
    
    首先,我要跑步

    ./b2 --debug-configuration -n 
    
    如上所述。这将允许您确认b2正在获取正确的jam文件。它在/home/user/中查找user-config.jam,因此如果尚未找到,您可能需要将其移动到该目录

    此外,我发现自己需要写出
    -option1-option2等。
    可能有一种方法可以传递整串选项,但在单个
    似乎不起作用后,将它们隔开

    输出显示运行的完整编译命令。您应该看到编译标志显示