Actualmente estoy intentando portar una aplicación C a AIX y me estoy confundiendo. ¿Qué son los archivos .ay .so y cómo se utilizan al crear / ejecutar una aplicación?

2

Las bibliotecas de archivo (.a) están vinculadas estáticamente, es decir, cuando compila su programa con la opción -c en gcc. Entonces, si hay algún cambio en la biblioteca, debe compilar y construir su código nuevamente.

La ventaja de .so (objeto compartido) sobre .a biblioteca es que están vinculados durante el tiempo de ejecución, es decir, después de la creación de su archivo .o opción -o en gcc. Por lo tanto, si hay algún cambio en el archivo .so, no es necesario que vuelva a compilar su programa principal. Pero asegúrese de que su programa principal esté vinculado al nuevo archivo .so con el comando ln.

Esto le ayudará a crear los archivos .so.
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

Espero que esto ayude.

1

.a son bibliotecas estáticas. Si usa código almacenado dentro de ellos, se toma de ellos y se incrusta en su propio binario. En Visual Studio, estos serían archivos .lib.

También lo son las bibliotecas dinámicas. Si usa código almacenado dentro de ellos, no se toma ni se incrusta en su propio binario. En su lugar, solo se hace referencia, por lo que el binario dependerá de ellos y el código del archivo so se agrega / carga en tiempo de ejecución. En Visual Studio / Windows, estos serían archivos .dll (con pequeños archivos .lib que contienen información de enlace).

3

Los archivos .a suelen ser bibliotecas que se vinculan estáticamente (o, más exactamente, archivos), y

.so son bibliotecas vinculadas dinámicamente.

Para hacer un puerto, necesitará el código fuente que se compiló para hacerlos, o archivos equivalentes en su máquina AIX.

3

Se utilizan en la etapa de vinculación. .a los archivos están vinculados estáticamente, y .so Los archivos están vinculados de alguna manera, por lo que la biblioteca es necesaria cada vez que ejecuta el archivo exe.

Puede encontrar dónde se almacenan mirando cualquiera de los directorios lib … /usr/lib y /lib tienen la mayoría de ellos, y también está el LIBRARY_PATH Variable ambiental.

Wikipedia es una fuente decente para esta información.

Para obtener información sobre archivos de biblioteca estáticos como .a read Biblioteca estática

Para obtener más información sobre los archivos de bibliotecas compartidas como .así, lea Library_ (informática) #Bibliotecas_compartidas En esta página, también hay información útil en el Nombre de archivo sección.