2011-09-27 8 views
7

Ho creato un progetto basato su makefile che crea il mio codice su più piattaforme. Sul mio Mac, però, voglio usare Xcode per il debug. Ho creato un Xcode come progetto di costruzione esterno Posso eseguire l'applicazione da Xcode. L'output viene mostrato in Xcode e se l'app si arresta in modo anomalo, viene inserito nel debugger, ma quando si esegue il debugger non è possibile individuare i file di origine, quindi viene visualizzato solo l'output dell'assieme. Come posso dire a Xcode dove individuare la fonte?Xcode 4 progetto di costruzione esterno e debug

anche io non riesco a impostare i punti di interruzione, ma penso che tutto questo è lo stesso problema.

+0

non riuscivo a trovare una soluzione per questo, così ho ceduto e ha creato un normale progetto Xcode per la biblioteca. Ciò significa che ho bisogno di mantenere i build Makefile, Xcode e probabilmente anche Visual Studio, ma almeno ho il mio debugger. – jdswain

risposta

6

sono stato in grado di risolvere il problema di non fermarsi al breakpoint impostando una directory di lavoro personalizzato per l'eseguibile. Prima di questo cambiamento ero in grado di creare con successo usando il sistema scons esterno da Xcode 4. Il mio codice sarebbe eseguito quando chiamato da XCode ma i breakpoint sarebbero stati ignorati.

Poi in XCode, Andare al prodotto -> Modifica schema ... Selezionare 'Utilizza personalizzato directory di lavoro' e ho impostato questo nella stessa directory del file eseguibile.

I punti di interruzione hanno quindi iniziato a funzionare.

+0

Grazie. Ho provato questo e funziona. All'inizio non funzionava, ma perché stavo eseguendo una build non di debug, una volta passato all'eseguibile di debug tutto iniziò a funzionare. Sono davvero contento di poterlo fare ora perché dovevo mantenere due build, una in Xcode e una esterna che non era l'ideale. – jdswain

1

In "Project Navigator" (l'icona della cartella di file appena sotto il pulsante "Esegui"), fare clic con il tasto destro e selezionare "Aggiungi file a your-project". Passare alla cartella di livello superiore in cui si eseguirà normalmente la build esterna e fare clic su Aggiungi.

+0

Ho aggiunto tutti i file sorgente. All'inizio l'ho fatto come riferimento alla cartella (le cartelle blu), ma ho anche provato ad aggiungere gruppi e file (cartelle gialle), né funzionava. In un progetto normale è inoltre necessario selezionare la casella "Partecipazione di destinazione", ma questa opzione è disabilitata in un progetto di creazione esterna. – jdswain

4
  1. Assicurarsi che -g sia incluso nelle opzioni del compilatore nel makefile.
  2. Impostare una directory di lavoro personalizzata nello schema, impostare l'eseguibile se non è già stato impostato.
  3. Assicurarsi che il progetto non stia eseguendo il dylibs che non è stato compilato con -g. Potrebbe essere necessario un passo di generazione per eseguire make install se il progetto crea dylibs e anche l'obiettivo principale.
  4. Assicurarsi che "strip" non venga chiamato. Ci sono vars di ambiente che set xcode che ti permettono di mantenere un makefile funzionante quando usato al di fuori di xcode.

Sono appena tornata da questo problema e questo ha funzionato (Xcode 4.6) (ottenuto il debug source e punti di interruzione di lavoro)

Problemi correlati