用arm-linux-gcc 3.4.6 交差编译 boost 1.49.0 的问题

时间:2021-03-26 02:21:11
前期准备
tar -xzvf boost_1_49_0.tar.g 
cd ...../boost_1_49_0/
./bootstrap.sh

生成的project-config.jam
/------------------------------------------------------------------/
# Boost.Build Configuration
# Automatically generated by bootstrap.sh

import option ;
import feature ;

# Compiler configuration. This definition will be used unless
# you already have defined some toolsets in your user-config.jam
# file.
if ! gcc in [ feature.values <toolset> ]
{
    using gcc ;
}

project : default-build <toolset>gcc ;

# Python configuration
using python : 2.7 : /usr ;

# List of --with-<library> and --without-<library>
# options. If left empty, all libraries will be built.
# Options specified on the command line completely
# override this variable.
libraries =  ;

# These settings are equivivalent to corresponding command-line
# options.
option.set prefix : /usr/local ;
option.set exec-prefix : /usr/local ;
option.set libdir : /usr/local/lib ;
option.set includedir : /usr/local/include ;

# Stop on first error
option.set keep-going : false ;
/------------------------------------------------------------------/

根据这个执行bjam

root@ubuntu:/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0# ./bjam  --layout=versioned --build-type=complete --toolset=arm-linux-gcc install \
> --prefix=/usr/local/arm/3.4.6 \
> --exec-prefix=/usr/local/arm/3.4.6 \
> --libdir= /usr/local/arm/3.4.6/lib \
> --includedir=/usr/local/arm/3.4.6/include 
arm.jam: No such file or directory
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build/toolset.jam:38: in toolset.using
rule arm.init unknown in module toolset.
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:481: in process-explicit-toolset-requests
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:562: in load
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/modules.jam:283: in import
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/boost-build.jam:17: in module scope



卡了半天了,不知道怎么解决,初学linux,神来救救我吧!!曾试过按网上方法改project-config 加arm-linux-gcc还是不行

要崩溃了!!!

5 个解决方案

#1


# Determine the toolset, if not already decided
if test "x$TOOLSET" = x; then
  guessed_toolset=`$my_dir/tools/build/v2/engine/build.sh --guess-toolset`
  case $guessed_toolset in
    acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
    TOOLSET=$guessed_toolset
    ;;

    intel-* )
    TOOLSET=intel
    ;;

    mingw )
    TOOLSET=gcc
    ;;

    sun* )
    TOOLSET=sun
    ;;

    * )


附加一句,这个是bootstrap.sh的一段代码,难道压根不支持arm-linux??

#2


该回复于2012-04-15 08:45:54被版主删除

#3


同样问题?

#4





关于那个什么,在project using gcc后指明路径为 /usr/local/arm/3.4.6/arm/.../arm-linux-gcc 后便以通过

再在执行之前的./bjam后 变为

root@ubuntu:/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0# ./bjam  --layout=versioned --build-type=complete --toolset=gcc install --prefix=/usr/local/arm/3.4.6 --exec-prefix=/usr/local/arm/3.4.6 --libdir= /usr/local/arm/3.4.6/lib --includedir=/usr/local/arm/3.4.6/include 
notice: could not find main target /usr/local/arm/3.4.6/lib
notice: assuming it is a name of file to create.
Performing configuration checks

    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : yes
    - icu                      : no
    - icu (lib64)              : no
    - ../config//has_gcc_visibility builds : no
    - ../config//has_long_double_support builds : no
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.

之后 加入--without-mpi

root@ubuntu:/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0# ./bjam  --layout=versioned --build-type=complete --toolset=gcc install --prefix=/usr/local/arm/3.4.6/bin --exec-prefix=/usr/local/arm/3.4.6/bin --libdir= /usr/local/arm/3.4.6/lib --includedir=/usr/local/arm/3.4.6/include --without-mpi
notice: could not find main target /usr/local/arm/3.4.6/lib
notice: assuming it is a name of file to create.
Performing configuration checks

    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : yes
    - icu                      : no
    - icu (lib64)              : no
    - ../config//has_gcc_visibility builds : no
    - ../config//has_long_double_support builds : no

程序直接卡在这里不动了,不知道是怎么回事,红字标出部分是怎么回事啊

#5


附加,现安装了openmpi 

并修改user-config.jam 添加如下语句,我也不知道对不对,我觉得应该不对

using mpi : 1.4.5 : /usr/local/share/openmpi : /usr/local/include/openmpi : /usr/local/lib/openmpi ;

出现

/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build/toolset.jam:38: in toolset.using
*** argument error
* rule mpi.init ( mpicxx ? : options * : mpirun-with-options * )
* called with: ( 1.4.5 : /usr/local/share/openmpi : /usr/local/include/openmpi : /usr/local/lib/openmpi :  :  :  :  )
* extra argument /usr/local/lib/openmpi
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/tools/mpi.jam:241:see definition of rule 'init' being called
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build/project.jam:888: in using
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/user-config.jam:94: in modules.load
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:257: in load-config
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:399: in load-configuration-files
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:555: in load
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/modules.jam:283: in import
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/boost-build.jam:17: in module scope

对于新手我来说,完全不知道怎么改正,god help me please!!!!!!!!

#1


# Determine the toolset, if not already decided
if test "x$TOOLSET" = x; then
  guessed_toolset=`$my_dir/tools/build/v2/engine/build.sh --guess-toolset`
  case $guessed_toolset in
    acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
    TOOLSET=$guessed_toolset
    ;;

    intel-* )
    TOOLSET=intel
    ;;

    mingw )
    TOOLSET=gcc
    ;;

    sun* )
    TOOLSET=sun
    ;;

    * )


附加一句,这个是bootstrap.sh的一段代码,难道压根不支持arm-linux??

#2


该回复于2012-04-15 08:45:54被版主删除

#3


同样问题?

#4





关于那个什么,在project using gcc后指明路径为 /usr/local/arm/3.4.6/arm/.../arm-linux-gcc 后便以通过

再在执行之前的./bjam后 变为

root@ubuntu:/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0# ./bjam  --layout=versioned --build-type=complete --toolset=gcc install --prefix=/usr/local/arm/3.4.6 --exec-prefix=/usr/local/arm/3.4.6 --libdir= /usr/local/arm/3.4.6/lib --includedir=/usr/local/arm/3.4.6/include 
notice: could not find main target /usr/local/arm/3.4.6/lib
notice: assuming it is a name of file to create.
Performing configuration checks

    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : yes
    - icu                      : no
    - icu (lib64)              : no
    - ../config//has_gcc_visibility builds : no
    - ../config//has_long_double_support builds : no
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.

之后 加入--without-mpi

root@ubuntu:/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0# ./bjam  --layout=versioned --build-type=complete --toolset=gcc install --prefix=/usr/local/arm/3.4.6/bin --exec-prefix=/usr/local/arm/3.4.6/bin --libdir= /usr/local/arm/3.4.6/lib --includedir=/usr/local/arm/3.4.6/include --without-mpi
notice: could not find main target /usr/local/arm/3.4.6/lib
notice: assuming it is a name of file to create.
Performing configuration checks

    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : yes
    - icu                      : no
    - icu (lib64)              : no
    - ../config//has_gcc_visibility builds : no
    - ../config//has_long_double_support builds : no

程序直接卡在这里不动了,不知道是怎么回事,红字标出部分是怎么回事啊

#5


附加,现安装了openmpi 

并修改user-config.jam 添加如下语句,我也不知道对不对,我觉得应该不对

using mpi : 1.4.5 : /usr/local/share/openmpi : /usr/local/include/openmpi : /usr/local/lib/openmpi ;

出现

/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build/toolset.jam:38: in toolset.using
*** argument error
* rule mpi.init ( mpicxx ? : options * : mpirun-with-options * )
* called with: ( 1.4.5 : /usr/local/share/openmpi : /usr/local/include/openmpi : /usr/local/lib/openmpi :  :  :  :  )
* extra argument /usr/local/lib/openmpi
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/tools/mpi.jam:241:see definition of rule 'init' being called
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build/project.jam:888: in using
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/user-config.jam:94: in modules.load
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:257: in load-config
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:399: in load-configuration-files
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/build-system.jam:555: in load
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/modules.jam:283: in import
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build
/home/dzg100011/Desktop/arm-linux-software/boost_1_49_0/boost-build.jam:17: in module scope

对于新手我来说,完全不知道怎么改正,god help me please!!!!!!!!