Si spera che sia una domanda semplice. Sto cercando di imparare la compilazione Objective-C di base dalla riga di comando, con clang. Capisco che Xcode è una soluzione migliore per progetti complessi e ho intenzione di trasferirmi presto, ma personalmente sento di capire meglio un linguaggio se riesco a compilarlo manualmente in un terminale, e per i piccoli progetti introduttivi di programmazione lo trovo meno di una seccatura da compilare in un terminale piuttosto che dover iniziare un nuovo progetto.Compilare più file Objective-C sulla riga di comando con clang
Quindi la domanda è: come si compila un programma Objective-C costituito da più file (dalla riga di comando)? (Sto provando a fare il programma frazione dal capitolo 7 del manuale di Kochan, con un file main.m e Fraction.m che entrambi #import "Fraction.h" e un file Fraction.h che importa il framework Foundation.) per compilare un singolo file che uso qualcosa come
clang -fobjc-arc main.m -o prog1
Ma se di tipo I che e voglio includere file diversi main.m nel progetto, ottengo gli errori, tra cui:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Se io prova ad aggiungere i file aggiuntivi al comando come argomenti, come
clang -fobjc-arc main.m Fraction.h Fraction.m -o prog1
tanto sono
clang: error: cannot specify -o when generating multiple output files
E se quindi rimuovere l'argomento -o come
clang -fobjc-arc main.m Fraction.h Fraction.m
tanto sono un mucchio enorme di errori tutti riferiti al quadro fondazione, alla fine terminano in "fatale errore: troppi errori emessi, fermandosi ora ".
Come posso fare e farlo funzionare? O devo semplicemente succhiarlo e usare Xcode non appena è coinvolto più di un file?
Un errore è che si specifica il file di inclusione "Fraction.h" come argomento per il compilatore. –
Ah! Grazie. È tutto: doveva essere solo il file .m e non il .h. –