Desarrollo de iOS: vea los archivos .o y los símbolos de función contenidos en la biblioteca estática (.a/.framework) (comando ar, nm)

.a/.framework en realidad empaqueta el archivo .o compilado en un archivo .a/.framework. un medio archivo/archivo.

Para ver el contenido del archivo .a de la biblioteca estática, use el siguiente comando para descomprimirlo:

 ar x xxx.a

Utilice el comando ar para empaquetar la biblioteca estática:


参数r是将后面的*.o或者*.a文件添加到目标文件中
参数c是创建
参数s是添加索引

ar -rcs 文件输出地址/xxx.a 文件索引地址1/*.o 文件索引地址2/*.o 等等

还可以将.a文件和.o文件一起打包:
ar -rcs 文件输出地址/xxx.a 文件索引地址1/*.o 文件索引地址2/*.o 等等 合并后的文件输出地址/xxxxx.a

Para ver los símbolos del archivo .a, use el siguiente comando:

nm  xx.a

如果输出较多,可重定向输出至文本文件中
nm  xx.a  > xx.txt

会打印每个包含的文件,以及文件内的symbol
nm -g xxx.a

El resultado contiene tres partes:

1. Valor del símbolo. De forma predeterminada, se muestra hexadecimal;

2. Tipo de símbolo. Minúsculas significa símbolos locales, mayúsculas significa símbolos globales (externos);

3. Nombre del símbolo.

Por ejemplo:

el tipo de símbolo se muestra en forma de letra, una letra minúscula indica que el símbolo es local, mientras que una letra mayúscula indica que el símbolo es global (global, externo). En términos generales, los tipos son los siguientes: T, D, B, U, W.

Sus respectivos significados son los siguientes:

T representa el símbolo de variable general definido en el segmento de código;

D representa el segmento de datos inicializado;

B representa el segmento de datos inicializado;

U representa símbolos no definidos que se utilizan en esta biblioteca pero que se definen en otras bibliotecas;

W, la abreviatura de débil, significa que si este símbolo también se define en otras bibliotecas de funciones, la definición de otros símbolos puede anular esta definición;

No es fácil de organizar, indíquelo al reimprimir, gracias ~

Supongo que te gusta

Origin blog.csdn.net/hbblzjy/article/details/132470556
Recomendado
Clasificación