Mam nadzieję, że proste pytanie. Próbuję nauczyć się podstawowej kompilacji Objective-C z linii poleceń, z klangiem. Rozumiem, że Xcode jest lepszym rozwiązaniem dla złożonych projektów i mam zamiar wkrótce to zrobić, ale osobiście uważam, że lepiej rozumiem język, jeśli mogę go skompilować ręcznie w terminalu, a dla małych projektów programistycznych wprowadzających uważam go za mniejszy. kłopot z kompilacją w terminalu, niż konieczność rozpoczęcia nowego projektu.Kompilowanie wielu plików Objective-C w wierszu poleceń z klangiem
Pytanie brzmi: w jaki sposób mogę skompilować program Objective-C, który składa się z wielu plików (z wiersza poleceń)? (Próbuję wykonać program frakcji z rozdziału 7 podręcznika Kochana, z plikiem main.m i Fraction.m, który zawiera zarówno #import "Fraction.h", i plik Fraction.h, który importuje framework Foundation.) kompilować jeden plik używam coś podobnego
clang -fobjc-arc main.m -o prog1
Ale jeśli mam wpisać, że i chcę to pliki inne niż main.m w projekcie pojawiają się błędy w tym:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gdybym spróbuj dodać dodatkowe pliki do komendy jako argumenty, takie jak
potem dostać
clang: error: cannot specify -o when generating multiple output files
I jeśli potem wyjąć -o argumentu jak
clang -fobjc-arc main.m Fraction.h Fraction.m
następnie uzyskać gigantyczny stos błędów wszystkie odnoszące się do ramy fundamentowej, ostatecznie kończące się „krytyczny błąd: zbyt wiele błędów wysłanych, zatrzymanie się teraz ".
Jak to zrobić i sprawić, aby działało? Czy muszę po prostu go wyssać i użyć Xcode, gdy tylko zaangażuje się więcej niż jeden plik?
Jednym błędem jest podanie pliku włączającego "Fraction.h" jako argumentu do kompilatora. –
Ah! Dzięki. To wszystko: musiało to być tylko pliki .m, a nie .h. –