24.11.2010 | 00:14
Malo sam se izgubila kod 5 koraka. Odvukla sam ga u noviExe i izbriala referencu na njega iz source-a. gdje ga mogu opet naci? kako da promjenim ovaj active target?
Nisi trebala brisati referencu iz Sources nego iz Compile Sources (Targets/MojProjekt).
Ako si obrisala REFERENCU iz Sources, onda ti je originalni fajl i dalje na disku, u folderu projekta ("MojProjekt", vjerojatno u njegovom rootu). Dovuci ga (drag&drop) iz tog foldera nazad u Sources i pusti da ga Xcode ubaci u projekt kao referencu (u većini slučajeva kad se nešto ubacuje u projekt, odabere se "Copy", tako da kopira to što ubacuješ u folder projekta - što je ovdje besmisleno jer bi pokušao kopirati fajl preko samog sebe).
Ako si pak obrisala fajl ("Also Move to Trash" opcija kad pozoveš Delete) onda si ga bacila u smeće - od tamo ga možeš vratiti nazad u Xcode tako da napraviš ovo što sam opisao u gornjem odlomku, ali uz odabranu Copy opciju (da kopira iz smeća, a ne da napravi referencu na fajl u smeću jer će "nestati" čim isprazniš smeće).
Ajmo se vratiti još korak nazad pa možda sve bude jasnije.
Kad kreiraš PROJEKT, Xcode stvori osnovni TARGET u koji će kompajlirati tvoj projekt. Taj target je ono što će na kraju postojati na disku, kao izvršna datoteka.
Ako se projekt zove "MojProjekt", Xcode će pod Targets kreirati "MojProjekt" target i (s obzirom da kompajliraš shell tool), to će ti omogućiti da kasnije iz terminala pozoveš (izvršiš) MojProjekt (kao "naredbu" ). No, koliko sam shvatio, ti ne izvršavaš to što buildaš iz terminala nego isključivo iz Xcodea pa pustimo sad terminal po strani.
Nazad u Xcode. Xcode podrazumijeva da ono što "ubacuješ" u njega (ili kreiraš u njemu, poput novih .c fajlova), nakon kompajliranja, linkanja ili jednostavnog kopiranja (koje se koristi za slike, ikone...) mora "spakirati" u target. U shell tool targete "pakira" samo izvršni fajl, ali u aplikacije pakira puno toga (Mac aplikacija je bundle, odnosno folder). Preskočimo priču o bundlovima, bitno je samo da nakon kompajliranja, rezultat završi u targetu, na disku, kao izvršna datoteka.
Ako želiš iz jednog projekta buildati više izvršnih datoteka (ili čega god - jer možeš buildati pluginove, biblioteke...), moraš imati više targeta.
Kad kreiraš projekt, aktivan je target koji se kreirao skupa s projektom. Primjetit ćeš da ima mali zeleni checkbox (ikonica targeta pod Targets). Kad kreiraš NOVI target, taj neće imati checkbox. Xcode defaultno kompajlira samo aktivni target (dakle, onaj koji ima checkbox). Zato moraš novom targetu (u primjeru je to "NoviExe" ) reći da je on aktivan target. Ima više načina za to učiniti, ali poslužit će glavni izbornik: Project -> Set Active Project -> NoviExe. Xcode će "NoviExe" označiti zelenim checkboxom kao aktivan target i kad klikneš na Build and Run, njega će kompajlirati/izvršiti.
Postoji i način za kompajlirati SVE targete istovremeno, ali to ćemo također preskočiti.
Zvuči kao "puno posla", ali zapravo nije. Samo zapamti da za napraviti NOVU izvršnu datoteku iz postojećeg projekta moraš kreirati NOVI target i u njegov Compile Sources dodati onaj source (ili više njih, nemam pojma što pokušavaš kompajlirati) koji kompajliraš u tu izvršnu datoteku. Nakon toga switchaš aktivni target u taj novi i pripaziš da je Prefix Header setting "prazan" (ili pak kreiraš BSD shell tool target pa će sigurno biti "prazan" i imaš korak manje za obaviti).
ima li neki kraci nacin da jednostavno pri vjezbanju za zadatake, kreiram novi file i runnam ga, a ne da za svaki novi zadatak radim novi projekt i radim sve ovo? naime u code blocks-u (koji mi cesto crasha na macu) to ide puuuuuno jednostavnije. otvori, save-aj, napisi, provjeri, i otvori novi file.
Ako ti je terminal "prijatelj", možeš kod pisati u kojem god želiš text editoru i kompajlirati iz terminala s
gcc -o MojProgram MojProgram.c
Brže ne može.
Ajde sad pliz podijeli s nama o kakvim je programima riječ pa možda netko ima praktičan savjet kako s njima najbrže baratati.