Mam obecnie problemy z linkerem podczas próby kompilacji programu Objective-C i myślę, że powodem, dla którego nie mogę wymyślić problemu, może być niewiedza co do procesu kompilatora.Co to jest proces podczas kompilacji Objective-C
Czy ktoś mógłby mi podać przegląd kroków podjętych podczas kompilacji?
To jak ja obecnie zrozumieć proces.
kompilatora kopiuje zawartość wszelkich włączonych .h plików w pliku, który został zdefiniowany w kompilator nie śledzić czy. Plik h został już dołączony, więc może być zawarty w projekcie wiele razy.
Dowolne pliki .m są kompilowane do kodu równoważnego C (które z kolei są kompilowane do kodu obiektu).
Łącznik tworzy łącza między deklaracjami wprowadzonymi w plikach .h a odpowiednimi funkcjami w kodzie wynikowym. Odpowiednie funkcje określa się, wyszukując je w pliku .m o tej samej nazwie.
Pliki obiektów są ze sobą połączone, tworząc plik wykonywalny, upewniając się, że główna funkcja znajduje się w punkcie wejścia pliku wykonywalnego. Wszelkie deklaracje są prawdopodobnie usunięte, aby zaoszczędzić miejsce?
Zakładając ten jest poprawna (co może nie być), to przypuszczalnie oznacza, że nigdy nie należy #include .m plików, ponieważ będzie prawdopodobnie skończyć z wielu definicji metody, która będzie powodować problemy łącznika.
Dziękuję za każde podświetlenie, które ktoś może wnieść do tego :).
Cheers,
Danny
Ah ha, to fantastyczne; teraz jest o wiele jaśniej i rozwiązałem problem z linkerem! Wielkie dzięki! :) – Danny