Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
428 views
in Technique[技术] by (71.8m points)

cross compiling - ARM compiler with autoconf

I am trying to compile some files for ARM architecture with autoconf. I am compiling them in Ubuntu 12.04 and the target system is a BeagleBoard XM. I run the following command:

./configure --host=arm-linux-gnueabi -prefix=${CSTOOL_DIR}/linux_arm_tool

and get this result:

configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-linux-gnueabi-strip... arm-linux-gnueabi-strip   
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for arm-linux-gnueabi-gcc... arm-linux-gnueabi-gcc
checking whether the C compiler works... no
configure: error: in `/home/edgar/Desktop/smartsantander/commserver':
configure: error: C compiler cannot create executables
See `config.log' for more details

And here is the config.log file:

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by commserver configure 3.2, which was
generated by GNU Autoconf 2.68.  Invocation command line was

  $ ../configure --target=i686-pc-linux-gnu --host=arm-linux-gnueabi --build=i686-pc-linux-gnu -prefix=/linux_arm_tool

## --------- ##
## Platform. ##
## --------- ##

hostname = ear-it
uname -m = i686
uname -r = 3.5.0-27-generic
uname -s = Linux
uname -v = #46~precise1-Ubuntu SMP Tue Mar 26 19:33:56 UTC 2013

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/lib/lightdm/lightdm
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/games
PATH: /home/ear-it/Desktop/arm-2008q3/arm-none-linux-gnueabi/bin
PATH: /home/ear-it/Desktop/arm-2008q3/arm-none-linux-gnueabi/bin/


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1801: checking for a BSD-compatible install
configure:1869: result: /usr/bin/install -c
configure:1880: checking whether build environment is sane
configure:1930: result: yes
configure:1979: checking for arm-linux-gnueabi-strip
configure:1995: found /usr/bin/arm-linux-gnueabi-strip
configure:2006: result: arm-linux-gnueabi-strip
configure:2071: checking for a thread-safe mkdir -p
configure:2110: result: /bin/mkdir -p
configure:2123: checking for gawk
configure:2153: result: no
configure:2123: checking for mawk
configure:2139: found /usr/bin/mawk
configure:2150: result: mawk
configure:2161: checking whether make sets $(MAKE)
configure:2183: result: yes
configure:2272: checking for arm-linux-gnueabi-gcc
configure:2288: found /usr/bin/arm-linux-gnueabi-gcc
configure:2299: result: arm-linux-gnueabi-gcc
configure:2568: checking for C compiler version
configure:2577: arm-linux-gnueabi-gcc --version >&5
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2588: $? = 0
configure:2577: arm-linux-gnueabi-gcc -v >&5
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.6.3 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --with-headers=/usr/arm-linux-gnueabi/include --with-libs=/usr/arm-linux-gnueabi/lib
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
configure:2588: $? = 0
configure:2577: arm-linux-gnueabi-gcc -V >&5
arm-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.
configure:2588: $? = 4
configure:2577: arm-linux-gnueabi-gcc -qversion >&5
arm-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.
configure:2588: $? = 4
configure:2608: checking whether the C compiler works
configure:2630: arm-linux-gnueabi-gcc -O3 -m32 -s -w   conftest.c  >&5
cc1: error: unrecognized command line option '-m32'
configure:2634: $? = 1
configure:2672: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "commserver"
| #define PACKAGE_TARNAME "commserver"
| #define PACKAGE_VERSION "3.2"
| #define PACKAGE_STRING "commserver 3.2"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "commserver"
| #define VERSION "3.2"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2677: error: in `/home/ear-it/Desktop/smartsantander/commserver/build':
configure:2679: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=set
ac_cv_env_build_alias_value=i686-pc-linux-gnu
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=arm-linux-gnueabi
ac_cv_env_target_alias_set=set
ac_cv_env_target_alias_value=i686-pc-linux-gnu
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=mawk
ac_cv_prog_CC=arm-linux-gnueabi-gcc
ac_cv_prog_STRIP=arm-linux-gnueabi-strip
ac_cv_prog_make_make_set=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/missing --run aclocal-1.11'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AUTOCONF='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/missing --run autoconf'
AUTOHEADER='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/missing --run autoheader'
AUTOMAKE='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/missing --run automake-1.11'
AWK='mawk'
CC='arm-linux-gnueabi-gcc'
CCDEPMODE=''
CFLAGS='-O3 -m32 -s -w'
CPPFLAGS=''
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EXEEXT=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/missing --run makeinfo'
MKDIR_P='/bin/mkdir -p'
OBJEXT=''
PACKAGE='commserver'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='commserver'
PACKAGE_STRING='commserver 3.2'
PACKAGE_TARNAME='commserver'
PACKAGE_URL=''
PACKAGE_VERSION='3.2'
PATH_SEPARATOR=':'
SET_MAKE=''
SHELL='/bin/bash'
STRIP='arm-linux-gnueabi-strip'
VERSION='3.2'
ac_ct_CC=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__include=''
am__isrc=' -I$(srcdir)'
am__leading_dot='.'
am__nodep=''
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build_alias='i686-pc-linux-gnu'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host_alias='arm-linux-gnueabi'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/ear-it/Desktop/smartsantander/commserver/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/linux_arm_tool'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias='i686-pc-linux-gnu'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "commserver"
#define PACKAGE_TARNAME "commserver"
#define PACKAGE_VERSION "3.2"
#define PACKAGE_STRING "commserver 3.2"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PACKAGE "commserver"
#define VERSION "3.2"

configure: exit 77
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

See unrecognized command line option '-m32'. You don't pass -m32 to an ARM compiler. This is a most likely a mistake in the package or possibly something you are doing with configure. Remove that from Makefile.in or where ever it is in the package.

How to read a config.log

The config.log is especially un-intuitive when you begin to use it. There is a large section at the end of the file where configure dumps all variables. You have to keep scrolling up until you find the command that actually failed. Some phrases to search backwards are Cache variables. and See 'config.log' for more details. Generally, at this point, some program is shown, compile options and output. In your example above, this is where you can find the -m32 being rejected.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...