Pregunta

Básicamente, puedo crear y compilar una biblioteca estática en Xcode4, pero las funciones no están siendo leídas por OTOOL. Me las arreglé para hacerlo una vez Para que funcionaría, pero cada otra vez desde entonces ha fallado, así que sé que me falta un paso obvio.

Lo que hago actualmente es crear una nueva aplicación basada en vistas en Xcode4, luego agrego un nuevo objetivo (números), a los números agrego un archivo fuente llamado file.c y su contenido es:

static int Get10()
{
    return 10;
}

Luego lo compilo (asegurándose de haber seleccionado números | Simulador del iPhone 4.3 en el esquema de compilación desplegable).

Pero cuando ejecuto OTOOL -S en libnumbers. A no tengo resultados:

Tamaño de las estructuras de Ranlib: 0 (número 0) Índice de cadena de compensación de objeto

Sé que debería haber algunas cosas allí porque si ejecuto otool -s en los libnumbres correctamente construidos. A obtengo algunos números en lugar de 0s:

Tamaño de las estructuras de Ranlib: 16 (número 2) Índice de cadena de compensación de objeto 136 0 136 7

Realmente no sé qué estoy haciendo mal exactamente, he intentado retroceder lo que hice con la exitosa compilación LIB que hice pero que realmente no he encontrado nada para indicar por qué las funciones compiladas con esa pero no estas.

¿Fue útil?

Solución

No lo usas static Si desea usar la función fuera de la unidad de traducción en la que se define. Desea un enlace externo para la función simplemente dejando de lado el static Parte (el enlace externo es el valor predeterminado para las funciones).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top