Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - binariolinux

binariolinux

¿Cómo utilizar correctamente las bibliotecas de enlaces estáticos y las bibliotecas de enlaces dinámicos?

Biblioteca dinámica y biblioteca estática

En Win, la biblioteca dinámica comienza con . DLL y bibliotecas estáticas. lib.

En Linux, los archivos de biblioteca dinámica comienzan con . Biblioteca estática con . a.

En Mac, la biblioteca dinámica comienza con . Las bibliotecas dylib y estáticas comienzan con . a.

Las ventajas y desventajas de las bibliotecas dinámicas

Las bibliotecas de funciones dinámicas no se compilan en el código de destino durante la compilación. La biblioteca de funciones solo se llamará cuando su programa ejecute funciones relacionadas. función correspondiente en, por lo que el archivo ejecutable generado por la biblioteca de funciones dinámicas es relativamente pequeño. Debido a que la biblioteca de funciones no está integrada en su programa, sino que se aplica y llama dinámicamente cuando el programa se está ejecutando, la biblioteca correspondiente debe proporcionarse en el entorno de ejecución del programa. Los cambios en la biblioteca de funciones dinámicas no afectan su programa y es más conveniente actualizar la biblioteca de funciones dinámicas.

Cuando un programa llama a una función de biblioteca de enlace dinámico en tiempo de ejecución, el sistema operativo primero verifica todos los procesos en ejecución para ver si alguien ha cargado la biblioteca. Úselo si lo tiene. Si no, se cargará. El primer beneficio de hacer esto es ahorrar espacio en la memoria. La carga dinámica significa esperar hasta que sea necesario, en lugar de mantenerlo en la memoria independientemente de si se usa o no.

Si quiero actualizar algún software. Si la ubicación de la actualización está en el dll, no es necesario volver a compilar ni vincular otras partes del software. Por eso es fácil de actualizar.

Ventajas y desventajas de las bibliotecas estáticas

Los archivos compilados por bibliotecas de funciones estáticas son relativamente grandes, porque toda la biblioteca de funciones se integrará en el código de destino durante la compilación. Sus ventajas son obvias. Es decir, el programa ejecutable compilado no requiere el soporte de bibliotecas de funciones externas, porque las funciones utilizadas han sido compiladas. Por supuesto, esto también será su defecto, porque si su biblioteca de funciones de enlace estático cambia, su programa debe volver a compilarse.

El código es más sencillo porque no se requiere verificación de versión.

Cuando se distribuye un programa, la cantidad de archivos es pequeña porque está vinculado estáticamente a los archivos fuente.

Compile sólo las partes de la biblioteca utilizadas, no toda la biblioteca.

Los archivos binarios generados ocuparán más espacio.

Pueden aparecer bibliotecas duplicadas en múltiples procesos, desperdiciando memoria.

Si la biblioteca se actualiza internamente, es necesario volver a compilar los binarios.

Biblioteca estática para plataforma Linux

Generación de biblioteca estática y biblioteca dinámica para plataforma Linux y enlace de biblioteca estática

Generación de biblioteca estática y enlace de biblioteca dinámica para Windows plataforma

p>

Genere una biblioteca estática/MT y compílela con LIBCMT.lib para crear un archivo ejecutable multiproceso. Generar biblioteca estática lib. r enlace de biblioteca estática 1. Utilice la biblioteca de enlaces para agregarla al comienzo del código. La segunda línea es la función que se llamará en la biblioteca de enlaces:

2. para ser llamado en el código fuente del proyecto para compilar. No se requiere dll al compilar. Aquí la parte estática lib se compila en exe y la biblioteca dinámica dll es inútil. )

3. Coloque el dll en el directorio exe antes de ejecutarlo.

Biblioteca dinámica para plataforma Windows

Genere una biblioteca dinámica/MD y utilice MSVCRT.lib para compilar y crear una DLL multiproceso. Generar biblioteca dinámica. r Vincule la biblioteca dinámica 1, LoadLibrary (o AfxLoadLibrary de MFC), cargue la biblioteca dinámica.

2. GetProcAddress, obtenga la función a introducir y convierta el nombre del símbolo o número de identificación en la dirección interna de la DLL.

3.FreeLibrary (o AfxFreeLibrary de MFC) y libere la biblioteca de enlaces dinámicos.

¿Aprender los tipos de archivos y sufijos de Linux uno por uno?

Tipos de archivos comunes en Linux

Documentos generales

Este es el archivo enumerado por ls-l. El primer carácter de la primera columna es -. Según el contenido del archivo, también se puede dividir en varias categorías:

Archivo de texto plano (ASCII): Equivale a un Bloc de notas, se llama archivo de texto plano. Podemos leer el contenido del archivo directamente. Este tipo de archivos representa una gran proporción de los sistemas Linux.

Archivo binario: El archivo ejecutable (script) en el sistema Linux es un archivo binario. Este archivo solo se puede ejecutar con permisos X. Algunos comandos de nuestro sistema son archivos de este tipo.

Archivo de formato de datos: en el sistema Linux, algunos programas leerán algunas bases de datos específicas cuando se ejecuten. Estos archivos son archivos de datos. Como mencionamos anteriormente, el último comando llama a /var/log/wtmp. Si usamos el comando cat para ver el archivo /var/log/wtmp, encontrará que tiene todos caracteres confusos.

Acerca de otros tipos de archivos, como archivos de conexión, archivos de dispositivos, archivos de interfaz de datos (sockets), archivos de tuberías, etc. Estos también son algunos tipos de archivos especiales, solo necesitamos entenderlos. En estudios posteriores, cuando los conozcamos, sólo hace falta saber cuáles son. Si desea obtener más información, busque información relevante y estúdiela lentamente, como por ejemplo, cómo ver un archivo de datos.

El nombre del sufijo de los archivos Linux

También dijimos al principio que en el sistema Linux, los requisitos para este sufijo no son tan estrictos como los del sistema win de Microsoft. Solo para que sea más fácil confirmar qué tipo de archivo es el archivo, se agrega el sufijo correspondiente al final. Si un archivo se puede leer con el comando cat, aún podemos leerlo con cat después de cambiar el sufijo.

También sabemos que en los sistemas Microsoft Win, los archivos ejecutables de uso común suelen terminar en. com,. Murciélagos y. exe. En nuestro sistema Linux, es diferente. Puedo agregar permisos X (ejecutables) a cualquier archivo, pero la ejecución exitosa depende del contenido del archivo en sí. Un punto muy importante aquí es que se puede ejecutar y ejecutar con éxito. Por ejemplo, tenemos un archivo install.log en el directorio de inicio del usuario raíz y le otorgamos X permisos. Aunque es un archivo ejecutable, no hay ningún resultado después de la ejecución, porque nuestro sistema no puede ejecutar el contenido de este archivo y, por supuesto, ¡no se ejecuta!

Así, para nuestra comodidad, sabemos para qué se utilizan los archivos del sistema. Los sistemas Linux seguirán utilizando los sufijos correspondientes para indicar los tipos de archivos. Echemos un vistazo a algunos sufijos comunes.

. sh: este archivo de script generalmente lo escribimos nosotros mismos, generalmente a través del shell, así que úselo. Chelín

. z,. alquitrán,. alquitrán,. gz,. cremallera,. tgz: todos estos tipos de archivos son archivos comprimidos, pero los métodos de compresión son diferentes.

. Registro: este tipo de archivo son solo algunos archivos de registro.

. conf: estos archivos son solo archivos de configuración, más comunes en sistemas Linux.

. rpm: Este es un paquete de software de Red Hat. Por supuesto, diferentes distribuciones de Linux tienen diferentes sufijos para los paquetes que utilizan.

. php,. jsp,. HTML,. css: Estos archivos son todos los tipos de sitios web.

Por supuesto, hay algunos otros sufijos que tienen poco significado. Son solo para nuestra conveniencia, para que podamos entenderlos brevemente.

Esta longitud es suficiente para nosotros. En el siguiente estudio, encontrará que muchos nombres de software en sistemas Linux son muy largos. Si escribe una palabra a la vez, perderá tiempo y, en ocasiones, cometerá errores. ¿No es esto demasiado inconveniente? Por supuesto que no. Los nombres de archivos largos nos ayudan a saber para qué se utiliza el archivo (creo que sí), pero en realidad nos resultan convenientes. Para evitar que escribamos tantas palabras, existe una tecla de función importante en el sistema Linux, que es TAB, que tiene una función de finalización. Simplemente escriba las primeras palabras, presione TAB y listo. Si presiona tabulador dos veces, se mostrará el contenido relacionado con estas palabras. Jaja, los amigos que usan Linux no conocen esta función o no necesitan conocerla.

Reglas de nomenclatura de archivos en sistemas Linux

Sabemos que en los sistemas Linux, los comandos se utilizan básicamente para operar. El shell que utilizamos tiene muchos caracteres especiales. Sería difícil si nuestros nombres de archivos tuvieran los mismos caracteres especiales que en este shell. Por lo tanto, cuando nombramos el archivo debemos evitar algunos caracteres especiales y al mismo tiempo facilitar su identificación. Se enumeran a continuación para tu referencia (no es que no puedas controlar a estos personajes, solo se recomienda evitarlos).

¿Todos los formatos de archivos en Linux?

Hay siete tipos de archivos en Linux:

Tipos de archivos comunes;

Tipos de archivos de directorio;

Tipos de archivos de dispositivo de bloqueo;

Tipo de dispositivo de carácter;

Tipo de archivo de socket;

Tipo de archivo de tubería;

Tipo de archivo de enlace.

Tipos de archivos genéricos

Los archivos más utilizados se caracterizan por tener información estructural que no contiene información del sistema de archivos. Por lo general, los archivos con los que los usuarios entran en contacto, como archivos gráficos, archivos de datos, archivos de documentos, archivos de sonido, etc., pertenecen todos a este tipo de archivos. Según su estructura interna, dichos archivos se pueden dividir en archivos de texto plano (ASCII), archivos binarios, archivos de formato de datos (datos) y varios archivos comprimidos.

Archivo de texto sin formato (ASCII): Este es el tipo de archivo más común en los sistemas Unix debido a que el contenido se puede leer directamente, como números, letras, etc., se denomina archivo de texto sin formato. Casi todos los archivos de configuración pertenecen a este tipo de archivo. Por ejemplo, utilice el comando "cat~/.bashrc" para ver el contenido del archivo (cat lee el contenido del archivo).

Archivos binarios: De hecho, el sistema sólo conoce y puede ejecutar archivos binarios. Los archivos ejecutables en Linux (excluyendo scripts y archivos por lotes en modo texto) están en este formato. Por ejemplo, el comando cat es un archivo binario.

Archivos de formato de datos: algunos programas leerán archivos en ciertos formatos durante la operación. Esos archivos con ciertos formatos pueden denominarse archivos de datos. Por ejemplo, cuando un usuario inicia sesión, Linux registra los datos de inicio de sesión en el archivo /var/log/wtmp, que es un archivo de datos que se puede leer con el último comando. Pero cuando se utiliza cat, se leerán caracteres confusos. Porque es un archivo de formato especial.

Tipo de archivo de directorio

Los archivos utilizados para almacenar nombres de archivos e información relacionada son los nodos básicos del sistema de archivos de la organización del núcleo. Los archivos de directorio pueden contener directorios de archivos de nivel inferior o archivos públicos. En Linux, un archivo de directorio es solo un archivo.

Puedes ingresar usando el comando #cd.

Tipo de archivo de dispositivo de bloqueo

Archivo de dispositivo de bloqueo: el dispositivo de interfaz para que el sistema de almacenamiento acceda a los datos, es solo un disco duro. Por ejemplo, el código del primer disco duro es /dev/hda1 y otros archivos.

Tipo de dispositivo de caracteres

Archivo de dispositivo de caracteres: dispositivo de interfaz de puerto serie, como teclado, mouse, etc.

Tipo de archivo socket

Este tipo de archivo se suele utilizar para conexiones de datos de red. Puede iniciar un programa para escuchar las solicitudes de los clientes y el cliente puede comunicar datos a través de sockets.

El tipo de archivo pipe

es un archivo muy especial, utilizado principalmente para la transferencia de información en diferentes procesos. Los archivos de canal se utilizan cuando dos procesos necesitan transferir datos o información. Un proceso escribe datos o información en un extremo de la tubería y otro proceso obtiene los datos o la información necesarios del otro extremo de la tubería. Normalmente, las canalizaciones se crean en la caché de ajuste.

Tipo de archivo de enlace

Es un archivo especial que apunta a un enlace de archivo real, similar a un acceso directo en Windows. Según la diferencia del archivo de enlace, se puede dividir. en un archivo de enlace físico y un archivo de enlace simbólico.

上篇: Incendio Bkpp o Golfo de México 下篇: Chismes detrás del escenario de la Wwe
Artículos populares