Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
Linux Pam crea una biblioteca estática en lugar de una biblioteca compartida

Estoy tratando de compilar Linux PAM para Android de la siguiente manera

 `#!/bin/sh # Linux-PAM/build.sh INSTALL_DIR="`pwd`/out" export PATH="android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin:$PATH" export CROSS_COMPILER="$PATH:android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin" export SYS_ROOT="android/prebuilts/ndk/current/platforms/android-9/arch-arm" export CC="arm-linux-androideabi-gcc --sysroot=$SYS_ROOT" export LD="arm-linux-androideabi-ld" export AR="arm-linux-androideabi-ar" export RANLIB="arm-linux-androideabi-ranlib" export STRIP="arm-linux-androideabi-strip" mkdir -p $INSTALL_DIR ./configure --host=arm-eabi --build=x86_64 --enable-shared --prefix=$INSTALL_DIR LIBS="-lc -lgcc" make make install`

La salida proporciona bibliotecas construidas estáticamente. Quiero bibliotecas compartidas. Si compilo para Linux, crea una biblioteca compartida de forma predeterminada. Pero para Android se construye estáticamente. El archivo config.log tiene lo siguiente

 configure:3581: arm-linux-androideabi-gcc --sysroot=android/prebuilts/ndk/current/platforms/android-9/arch-arm -v >&5 Using built-in specs. COLLECT_GCC=arm-linux-androideabi-gcc COLLECT_LTO_WRAPPER=android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../libexec/gcc/arm-linux-androideabi/4.6.x-google/lto-wrapper Target: arm-linux-androideabi Configured with: /tmp/android-8532/src/build/../gcc/gcc-4.6/configure --prefix=/usr/local --target=arm-linux-androideabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/tmp/android-8532/obj/temp-install --with-mpfr=/tmp/android-8532/obj/temp-install --with-mpc=/tmp/android-8532/obj/temp-install --without-ppl --without-cloog --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --with-gcc-version=4.6 --with-binutils-version=2.21 --with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 --with-gdb-version=7.3.x --with-arch=armv5te --with-sysroot=/tmp/android-8532/install/sysroot --with-prefix=/tmp/android-8532/install --with-gold-version=2.21 --enable-gold --program-transform-name='s&^&arm-linux-androideabi-&' --enable-gold=default .... configure:10632: checking if libtool supports shared libraries configure:10634: result: no configure:10637: checking whether to build shared libraries configure:10658: result: no

¿Qué está yendo mal?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

He tenido problemas similares al compilar de forma cruzada para Android desde la línea de comandos. iOS también es divertido. Ver ¿Cómo configurar para Android? en la lista de correo de Autoconf.

Creo que host es incorrecto. Tratar:

 ./configure --build=`./config.guess` --host=arm ...

o

 ./configure --build=`./config.guess` --host=arm-linux-androideabi ...

Si no es así, ¿puede publicar los resultados completos de config.log (completamente relacionados con las pruebas de objetos compartidos, no el archivo completo).

Lo siento, no puedo ayudarte más. Estoy probando la compilación cruzada de Linux-PAM-1.1.8 en mi MacBook (está configurado para Android dev), pero este es mi resultado:

 In file included from pam_modutil_private.h:14:0, from pam_audit.c:12: ./include/security/pam_modutil.h:53:20: fatal error: shadow.h: No such file or directory compilation terminated. make[2]: *** [pam_audit.lo] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 $ pwd /Users/jwalton/Linux-PAM-1.1.8 $ find . -iname shadow.h $
over 4 years ago · Santiago Trujillo Relatório

0

Noté esto en la cadena de registro grande y larga:

 Target: arm-linux-androideabi Configured with: /tmp/android-8532/src/build/../gcc/gcc-4.6/configure ... --disable-shared ...

Por lo tanto, las bibliotecas compartidas están deshabilitadas, lo que significa que no las construirá.

over 4 years ago · Santiago Trujillo Relatório

0

Hice un pequeño progreso y descubrí que el indicador can_build_shared está desactivado porque no puede encontrar un enlazador dinámico para el tipo de host = eabi

configure:9299: comprobación de las características del enlazador dinámico

En el script de configuración, la verificación es la siguiente

 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in

luego hay una lista de host_os como darwin, aix... pero no hay caso swith para "host_os=eabi"

Esta es la causa raíz. Buscando la solución..

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda