2011-09-27 19 views
7

Tengo una configuración de proyecto basada en el archivo MAKE que construye mi código en múltiples plataformas. En mi Mac, sin embargo, quiero usar Xcode para la depuración. Configuré un Xcode como proyecto de compilación externo. Puedo ejecutar la aplicación desde Xcode. La salida se muestra en Xcode y si la aplicación falla, cae en el depurador, pero cuando se ejecuta el depurador no puede encontrar los archivos de origen, por lo que solo veo el resultado del ensamblaje. ¿Cómo puedo decirle a Xcode dónde ubicar la fuente?Xcode 4 proyecto de compilación externo y depuración

También no puedo establecer puntos de interrupción, pero creo que este es el mismo problema.

+0

no pude encontrar una solución para esto, así que le di y creado un proyecto de Xcode normal para el biblioteca. Esto significa que necesito mantener las compilaciones Makefiles, Xcode y probablemente también Visual Studio, pero al menos tengo mi depurador de nuevo. – jdswain

Respuesta

6

Pude solucionar el problema de no detenerme en puntos de interrupción estableciendo un directorio de trabajo personalizado para el ejecutable. Antes de este cambio, pude construir con éxito utilizando el sistema de scons externo de Xcode 4. Mi código se ejecutaba cuando se llamaba desde XCode pero los puntos de corte se ignorarían.

Luego, en XCode, Ir al Producto -> Editar Esquema ... cheque 'utilizar encargo directorio de trabajo' y he de poner esto en el mismo directorio que el ejecutable.

Los puntos de interrupción comenzaron a funcionar.

+0

Gracias. Lo intenté y funcionó. Al principio no fue así, pero eso fue porque estaba ejecutando una compilación sin errores, una vez que cambié al ejecutable de depuración, todo comenzó a funcionar. Estoy muy contento de poder hacer esto ahora, ya que tuve que mantener dos compilaciones, una en Xcode y otra fuera, lo que no era ideal. – jdswain

1

En "Project Navigator" (el icono de la carpeta de archivos justo debajo del botón "Ejecutar"), haga clic derecho y seleccione "Agregar archivos al su proyecto". Busque la carpeta de nivel superior donde normalmente ejecutaría la compilación externa y haga clic en Agregar.

+0

He agregado todos los archivos fuente. Al principio hice esto como referencias de carpetas (las carpetas azules), pero también intenté agregar grupos y archivos (carpetas amarillas), ninguno funcionó. En un proyecto normal, también debe marcar la casilla 'Membresía objetivo', pero está deshabilitada en un proyecto de compilación externa. – jdswain

4
  1. Asegúrese de que -g esté incluido en las opciones del compilador en el archivo MAKE.
  2. Establezca un directorio de trabajo personalizado en el esquema, establezca el ejecutable si aún no se ha establecido.
  3. Asegúrese de que el proyecto no esté ejecutando dylibs que no se hayan compilado con -g. Es posible que necesite un paso de compilación para ejecutar make install si el proyecto crea dylibs así como el objetivo principal.
  4. Asegúrese de que no se está llamando a "strip". Hay variables de entorno que configuran xcode que le permiten mantener un archivo MAKE que funciona cuando se usa fuera de xcode.

Sólo tuvimos este problema y esto funcionó (Xcode 4.6) (conseguido depuración de origen y los puntos de interrupción de trabajo)

Cuestiones relacionadas