parametros ejecutar compilar compilador arm cross-compiling libtool expat-parser

arm - ejecutar - Libtool afirma que no admite bibliotecas compartidas durante la compilación cruzada



gcc linux (2)

Si está utilizando Homebrew como su administrador de paquetes, tenga en cuenta que algunas fórmulas se vierten de botellas compiladas a 32 bits como el mínimo común denominador. Puede reconstruir libtool a su arquitectura nativa mediante el uso de

$ brew install --build-from-source libtool`

o simplemente pasando cualquier bandera válida

$ brew install --universal libtool

La mayoría de las fórmulas tienen la bandera --universal que generará las arquitecturas i386 y x86_64.

Estoy intentando construir la biblioteca de análisis XML expat (2.0.0) para una máquina embebida ARM ejecutando busybox 1.13, y durante el archivo ./configure, obtengo el error:

checking if libtool supports shared libraries... no

Especifiqué mi gcc, g ++, ar, ranlib, strip, etc. y todos fueron encontrados por la herramienta de configuración, y tengo el último libtool (2.4.2 en el momento de escribir esto) ejecutándose en Ubuntu 12.10 , entonces, ¿por qué está diciendo que libtool no admite bibliotecas compartidas? Mi comando de configuración es:

./configure --host=arm --enable-shared CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

... y la salida completa de la llamada es:

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 build system type... i686-pc-linux-gnu checking host system type... arm-unknown-none checking for arm-gcc... arm-none-linux-gnueabi-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether arm-none-linux-gnueabi-gcc accepts -g... yes checking for arm-none-linux-gnueabi-gcc option to accept ANSI C... none needed checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E checking for ld used by arm-none-linux-gnueabi-gcc... /usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld checking if the linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes checking for /usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld option to reload object files... -r checking for BSD-compatible nm... nm checking whether ln -s works... yes checking how to recognise dependent libraries... unknown checking how to run the C preprocessor... arm-none-linux-gnueabi-gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for arm-g++... arm-none-linux-gnueabi-g++ checking whether we are using the GNU C++ compiler... yes checking whether arm-none-linux-gnueabi-g++ accepts -g... yes checking how to run the C++ preprocessor... arm-none-linux-gnueabi-g++ -E checking for arm-g77... no checking for arm-f77... no checking for arm-xlf... no checking for arm-frt... no checking for arm-pgf77... no checking for arm-fort77... no checking for arm-fl32... no checking for arm-af77... no checking for arm-f90... no checking for arm-xlf90... no checking for arm-pgf90... no checking for arm-epcf90... no checking for arm-f95... no checking for arm-fort... no checking for arm-xlf95... no checking for arm-ifc... no checking for arm-efc... no checking for arm-pgf95... no checking for arm-lf95... no checking for arm-gfortran... no checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for epcf90... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for gfortran... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse nm output from arm-none-linux-gnueabi-gcc object... ok checking for objdir... .libs checking for arm-ar... arm-none-linux-gnueabi-ar checking for arm-ranlib... arm-none-linux-gnueabi-ranlib checking for arm-strip... arm-none-linux-gnueabi-strip checking if arm-none-linux-gnueabi-gcc supports -fno-rtti -fno-exceptions... no checking for arm-none-linux-gnueabi-gcc option to produce PIC... -fPIC checking if arm-none-linux-gnueabi-gcc PIC flag -fPIC works... yes checking if arm-none-linux-gnueabi-gcc static flag -static works... yes checking if arm-none-linux-gnueabi-gcc supports -c -o file.o... yes checking whether the arm-none-linux-gnueabi-gcc linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... no checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by arm-none-linux-gnueabi-g++... /usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld checking if the linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes checking whether the arm-none-linux-gnueabi-g++ linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) supports shared libraries... no checking for arm-none-linux-gnueabi-g++ option to produce PIC... -fPIC checking if arm-none-linux-gnueabi-g++ PIC flag -fPIC works... yes checking if arm-none-linux-gnueabi-g++ static flag -static works... yes checking if arm-none-linux-gnueabi-g++ supports -c -o file.o... yes checking whether the arm-none-linux-gnueabi-g++ linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) supports shared libraries... no checking dynamic linker characteristics... no checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for arm-gcc... (cached) arm-none-linux-gnueabi-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether arm-none-linux-gnueabi-gcc accepts -g... (cached) yes checking for arm-none-linux-gnueabi-gcc option to accept ANSI C... (cached) none needed checking for a BSD-compatible install... /usr/bin/install -c checking whether gcc accepts -fexceptions... yes checking for ANSI C header files... (cached) yes checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking for size_t... yes checking for memmove... yes checking for bcopy... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for unistd.h... (cached) yes checking for off_t... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... no checking for an ANSI C99-conforming __func__... yes configure: creating ./config.status config.status: creating Makefile config.status: creating expat_config.h amarshall3@pg-oj-amarshall3:~/Sandbox/expat-2.0.0$ make /bin/bash ./libtool --silent --mode=compile arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmlparse.lo -c lib/xmlparse.c /bin/bash ./libtool --silent --mode=compile arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmltok.lo -c lib/xmltok.c /bin/bash ./libtool --silent --mode=compile arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmlrole.lo -c lib/xmlrole.c /bin/bash ./libtool --silent --mode=link arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -no-undefined -version-info 6:0:5 -rpath /usr/local/lib -o libexpat.la lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/xmlwf.o -c xmlwf/xmlwf.c arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/xmlfile.o -c xmlwf/xmlfile.c arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/codepage.o -c xmlwf/codepage.c arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/readfilemap.o -c xmlwf/readfilemap.c xmlwf/readfilemap.c: In function ''filemap'': xmlwf/readfilemap.c:65: warning: implicit declaration of function ''read'' xmlwf/readfilemap.c:69: warning: implicit declaration of function ''close'' /bin/bash ./libtool --silent --mode=link arm-none-linux-gnueabi-gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/xmlwf xmlwf/xmlwf.o xmlwf/xmlfile.o xmlwf/codepage.o xmlwf/readfilemap.o libexpat.la

¿Podría alguien explicarme cómo la configure determina si libtool admite la creación de bibliotecas compartidas?


De la salida:

checking build system type... i686-pc-linux-gnu checking host system type... arm-unknown-none ... checking whether the arm-none-linux-gnueabi-gcc linker (/usr/local/arm/arm-2007q1/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes ... checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes

Probablemente, libtool se confunde con su bandera de host: --host=arm , que para libtool es lo mismo que --host=arm-unknown-none . Pruebe --host=arm-none-linux lugar. IIRC, arm-unknown-none es utilizado por personas que quieren hacer cosas que no sean RTOS (bucle principal) para MCU y otras placas integradas donde no hay sistema operativo y todo está vinculado estáticamente a una imagen. Su cadena de herramientas está diseñada para Linux: arm-none-linux .