Domanda

Fondamentalmente io sono in grado di creare e compilare una libreria statica in xcode4 ma le funzioni non vengono letti in per otool. Sono riuscito a farlo una volta in modo che avrebbe funzionato, ma tutte le altre volte da allora ha fallito così so che devo mancare un passo ovvio.

Quello che attualmente faccio è creare una nuova applicazione basata vista in xcode4, ho quindi aggiungere un nuovo obiettivo (Numeri), Numbers aggiungo un file sorgente chiamato file.c e il suo contenuto è:

static int Get10()
{
    return 10;
}

Poi ho compilare esso (facendo Numbers sicuro che ho selezionato | iPhone 4.3 Simulator nello schema di compilazione discesa).

Ma quando ho eseguito otool -S sul libNumbers.a ottengo alcun risultato:

dimensioni delle strutture ranlib: 0 (numero 0) oggetto compensare indice di stringhe

So che ci dovrebbe essere una certa roba lì perché se corro otool -S sul correttamente costruito libNumbers.a ottengo alcuni numeri invece di 0:

dimensioni delle strutture ranlib: 16 (numero 2) compensato indice oggetto stringa 136 0 136 7

Io davvero non so cosa sto facendo male esattamente, ho provato backtracing quello che ho fatto con la lib successo di compilazione che ho fatto, ma non ho davvero trovato nulla per indicare il motivo per cui le funzioni compilate con quello no, ma questi.

È stato utile?

Soluzione

Non utilizzare static se si desidera utilizzare la funzione di fuori della unità di traduzione è definito in. Volete collegamento esterno per la funzione invece semplicemente lasciando la parte static (collegamento esterno è l'impostazione predefinita per le funzioni).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top