2011-01-18 15 views
37

Mentre compivo un singolo file sorgente con Cmd + K nelle versioni precedenti di Xcode, come si fa lo stesso in Xcode 4? (Si noti che questo è diverso rispetto alla pre-elaborazione o alla visualizzazione dello smontaggio del file.) Se viene proposta la compilazione da una riga di comando, deve essere tale che le impostazioni del progetto, inclusi i percorsi, le definizioni del preprocessore, ecc. Siano tutte incluse.Come si compila un singolo file Xcode 4?

Un caso di utilizzo di esempio è il caso in cui si modifica un file di intestazione ma si desidera solo verificare l'effetto del cambiamento rispetto a un singolo file di origine, non a tutti i file che dipendono da tale intestazione.

+0

Poiché sembra che Apple abbia rimosso completamente questa funzione da Xcode 4, penso che l'unico modo per recuperarlo è creare un plug-in Xcode. Sfortunatamente, l'API plug-in non è documentata e Apple non ha rilasciato alcuna dichiarazione circa l'apertura in qualunque momento presto. –

+2

ho lo stesso problema. Mi piace usare questo tipo di cose come metodo per il porting: porto i file da un'altra piattaforma e li costruisco per vedere dove sono gli errori da correggere su una base per file. – jheriko

+0

Devi accettare la risposta di John Stephen. – ksl

risposta

7

Un modo che ho trovato per farlo è quello di utilizzare i seguenti comandi di menu:

Product -> Generate Output -> Generate Preprocessed File 
Product -> Generate Output -> Generate Assembly File 

Questo potrebbe non essere esattamente quello che vuoi, ma sarà compilare il file singolo.

+0

Queste opzioni sono deselezionate per me, con xcode 4.6.3. –

+1

Selezionare prima un file – Haroon

+0

Nessuna opzione del menu in Xcode 5. Deludente. – Pang

-2

Se il file è C (o C++) di file, quindi è sufficiente aprire il terminale, passare alla cartella in cui si trova il file e digitare

gcc -o outputFile inputFile.c 

Io non sono familiarità con Objective-C più di tanto, ma GCC potrebbe funzionare poiché è solo un superset di C, proprio come C++.

Speranza che è stato utile :)

+0

Non proprio quello che ha chiesto e sì, gcc può compilarlo nel momento in cui viene compilato il supporto per obiettivi C lungo e sono fornite le librerie necessarie. – AoeAoe

-3

Il requisito comune per la compilazione singolo file sta controllando la presenza di errori di sintassi. (almeno per me). Poiché xcode4 evidenzia gli errori di sintassi durante la digitazione. Sembra che Apple abbia rimosso quella caratteristica.

+0

questa non è una risposta alla domanda ... – jheriko

+0

La compilazione di un singolo file è molto più di errori di sintassi. Tra le altre cose, ti mostrerà se quel file ha le sue dipendenze dichiarate adeguatamente. – Kaitain

-2

La scorciatoia da tastiera Cmd + K su Xcode 3 e prima è stato nuovamente assegnati Cmd + B su Xcode 4

Sulla stessa linea, Cmd + ritorno era rimappato a Cmd + R (nel caso in cui l'avete usato)

+1

La compilazione di un singolo file non equivale alla costruzione dell'intero progetto. – fbrereto

+0

@fbrereto Penso che oey192 lo capisca, ma le persone con 1 karma non possono pubblicare commenti. –

+0

@ MahmoudAl-Qudsi Vedo; Non ho avuto questa impressione dato che Cmd + K (compila un singolo file sorgente in Xcode 3) non è la stessa operazione di costruzione dell'intero progetto (Cmd + B su entrambi Xcode 3 e 4.) Forse sto solo leggendo la sua risposta sbagliata ... – fbrereto

-1

Quando si crea un progetto, xcode esegue il comando di compilazione. È possibile controllare il registro, cercare il file e copiare il comando incolla su Terminale. Compilerà solo il file per il quale copi/incolla il terminale.

11

Il comando è stato spostato nel sottomenu Esegui azione. Guardate sotto

Product > Perform Action > Compile filename.cpp 

Per assegnare Cmd +K ad esso, andare a

File > Preferences > Key Bindings > Product Menu group 

e troverete compilare file in cui è possibile assegnare un tasto. Cmd + K viene assegnato a Clear Console ora per impostazione predefinita, quindi assicurarsi di rimuovere tale associazione per evitare conflitti.