Attualmente sto avendo alcuni problemi di linker quando provo a compilare un programma Objective-C e penso che il motivo per cui non riesco a capire il problema potrebbe essere dovuto all'ignoranza per quanto riguarda il processo del compilatore.Qual è il processo eseguito durante la compilazione Objective-C
Qualcuno potrebbe darmi una panoramica dei passaggi effettuati durante la compilazione?
Questo è come io attualmente comprendo il processo:.
le copie del compilatore i contenuti dei file inclusi nel file .h che è stato definito in Il compilatore non tenere traccia di se una. Il file h è già stato incluso, quindi potrebbe essere incluso più volte in un progetto.
Tutti i file .m sono compilati in codice equivalente C (che vengono a loro volta compilati in codice oggetto).
Il linker produce collegamenti tra le dichiarazioni effettuate nei file .h e le funzioni appropriate all'interno del codice oggetto. Le funzioni appropriate sono determinate cercandole in un file .m con lo stesso nome.
I file oggetto sono collegati insieme per formare l'eseguibile, assicurandosi che la funzione principale si trovi nel punto di ingresso dell'eseguibile. Eventuali dichiarazioni sono quindi presumibilmente cancellate per risparmiare spazio?
Supponendo che questo è corretto (che potrebbe non essere), questo sarebbe probabilmente significa che non si dovrebbe mai # include file .m perché probabilmente finire con molteplici definizioni dei metodi che causano i problemi di linker.
Grazie per qualsiasi illuminazione chiunque può portare a questo :).
Cheers,
Danny
Ah ah, è fantastico; ora è molto più chiaro e ho risolto il problema con il linker! Grazie molto! :) – Danny