Tutoriales

Cómo comprobar si una biblioteca es de 32 bits o de 64 bits

Si logró explorar el ecosistema de desarrollo de software, es muy consciente del impacto que tienen las bibliotecas en el sistema. Podemos definir una biblioteca como un conjunto de recursos no volátiles o un conjunto de bloques de código precompilados que se pueden reutilizar para ejecutar un programa. Por lo tanto, el programa consultará a la biblioteca los recursos que necesita para continuar o completar su ejecución.

Las bibliotecas pueden ser de 32 bits o de 64 bits, según la arquitectura del sistema Linux disponible. Un sistema Linux de 64 bits puede alojar bibliotecas de 32 y 64 bits, mientras que un sistema Linux de 32 bits solo puede alojar bibliotecas de 32 bits.

Con este fin, este artículo se centrará en los usuarios de sistemas Linux de 64 bits. También debemos tener en cuenta que las bibliotecas discutidas en este artículo son bibliotecas C/C++ porque tienen una fuerte conexión con el sistema operativo Linux.

Este artículo ayudará a los usuarios de Linux de 64 bits a determinar si están usando bibliotecas de 32 bits o de 64 bits en sus sistemas Linux.

tipo de biblioteca

Diferentes programas se benefician de una sola biblioteca porque una biblioteca es solo un archivo que contiene una colección agrupada de código precompilado, lo que es beneficioso para varios programas y se puede consultar fácilmente.

En el entorno del sistema operativo Linux, hay dos tipos de bibliotecas:

  • biblioteca estática: Estas bibliotecas tienen la extensión de archivo “.a” y (en tiempo de compilación) vinculado estáticamente al programa.
  • biblioteca compartida: Estas bibliotecas tienen la extensión de archivo “.so”Se activan al inicio del programa y se cargan en la memoria en tiempo de ejecución.

Las bibliotecas estáticas no existen como ejecutables, sino como archivos de otros archivos. Las bibliotecas compartidas, por otro lado, son ejecutables. P.ej, Duende Los archivos de objetos se pueden clasificar como bibliotecas estáticas, mientras que Duende Un archivo puede considerarse como una biblioteca compartida.

Ahora veamos cómo determinar si una biblioteca es de 64 bits, el sistema Linux es de 32 bits o de 64 bits.

Uso de comandos de archivo de Linux

De acuerdo con su página man, documento Los comandos son eficaces para determinar los tipos de archivos. Esta propiedad lo hace ideal para determinar el formato de la biblioteca que se está utilizando.

Vamos a formatear algunas de las bibliotecas internas /usr/lib Tabla de contenido.

$ ls -l /usr/lib 
Lista de bibliotecas de Linux

Para determinar si la biblioteca es de 64 bits o de 32 bits, ejecute:

$ file /usr/lib/klibc-K8e6DOmVI9JpyGMLR7qNe5iZeBk.so
Compruebe si la biblioteca es de 32 bits o de 64 bits
Compruebe si la biblioteca es de 32 bits o de 64 bits

La captura de pantalla anterior confirma que la biblioteca compartida resaltada es 64 bits.

También podemos verificar el formato de las bibliotecas estáticas mediante:

$ file /usr/lib/x86_64-linux-gnu/libffi.a 
Buscar tipos de archivos
Buscar tipos de archivos

Cuando se trata de bibliotecas estáticas, documento El comando solo lo informa como un archivo y no informa si se trata de una biblioteca de 64 bits o de 32 bits, porque no es un archivo ELF.

Usando el comando objdump de Linux

Este volcado de objetos El comando hace referencia al archivo de objeto y vuelca información sobre él en la salida estándar.Debe usarse con -f Las banderas muestran información del encabezado del archivo.

Usémoslo para verificar el formato de biblioteca de una biblioteca compartida:

$ objdump -f /usr/lib/klibc-K8e6DOmVI9JpyGMLR7qNe5iZeBk.so
Verifique la información de la biblioteca en Linux
Verifique la información de la biblioteca en Linux

sección de salida»formato de archivo elf64» significa que estamos usando una biblioteca de 64 bits.

Ahora usemos volcado de objetos Comando para verificar el formato de biblioteca de una biblioteca estática:

$ objdump -f /usr/lib/x86_64-linux-gnu/libffi.a
Verifique el formato de archivo de la biblioteca estática
Verifique el formato de archivo de la biblioteca estática

Este volcado de objetos El comando itera sobre todos los objetos en la biblioteca estática proporcionada, resaltando sus formatos de archivo asociados.

Para una salida simple, podemos canalizar volcado de objetos comandar un awk Comando de la siguiente manera:

$ objdump -f /usr/lib/x86_64-linux-gnu/libffi.a | awk 'sub(/.*file format /,"") && !a[$0]++' 

elf64-x86-64

Ahora podemos determinar fácilmente el formato de biblioteca utilizado para bibliotecas estáticas y compartidas en el entorno del sistema operativo Linux.

LEER  🔔LOS 6 MEJORES PROGRAMAS GRATUITOS PARA DISEÑAR EN 3D✍ | Conceptos básicos de la impresión 3D ⚙️

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba