2011-08-09 8 views
23

Estoy intentando depurar un programa C++ en Eclipse Indigo. El proyecto está utilizando autotools/configure (y el plugin respectivo) como sistema de compilación."El programa no es un ejecutable reconocido" error en Eclipse

Después de la compilación exitosa, hice clic con el botón derecho en el binario en el navegador del proyecto y seleccioné "Depurar como". Luego usé el buscador de archivos para seleccionar el binario. Al hacer clic en "Depurar" se abre un diálogo que dice "el programa no es un ejecutable reconocido".

¿Alguna idea?

Respuesta

35

he encontrado la respuesta: los analizadores binarias configuradas en Eclipse eran las equivocadas. Agregar el analizador binario correcto en Proyecto -> Propiedades -> C/C++ Build -> Configuraciones resuelve el problema.

+1

¿Y cuáles son los analizadores binarios? Soy el mismo problema;) –

+9

Whops, resuelto! Desmarcar el analizador Elf y comprobar el analizador Mach-O 64 y se depura! ¡Gracias! –

+1

Veo el mismo problema, pero desmarcar Elf y comprobar Mach-O 64 no lo resuelve. –

3

Si está utilizando libtool en su proyecto, lo que parece ser el binario puede ser en realidad un guión envoltorio utilizado para establecer LD_LIBRARY_PATH y cosas por el estilo antes de ejecutar el binario real (que se almacena en el directorio .libs). Esto puede ser lo que hace que Eclipse falle, pero no estoy seguro de cómo debes arreglarlo.

Parece que hay un poco de documentación sobre Eclipse CDT y libtool en el Internet que puede tener las informaciones que necesita sin embargo: http://www.freerdp.com/wiki/doku.php?id=eclipse#debug_configuration

+1

Gracias por la respuesta, pero libtool no está involucrado. El archivo es un ejecutable (Mach-O ejecutable i386, estoy usando gcc 4.6.1 en Mac OS X). – Andreas

+1

Ese enlace freerdb está muerto. –

+0

Tengo el mismo problema y la configuración del analizador binario no se resolvió. Resulta que lo que yo pensaba que era ejecutable era exactamente un script envoltorio usando libtool. Entonces, la causa probablemente mencionada es correcta. Estoy tratando de encontrar la manera de solucionarlo. Lo verifiqué cuando intenté ejecutar gdb en exe de forma manual después de no poder ejecutarlo desde eclipse – fayyazkl

0

De OSX Snow Leopard on, gcc parece construir ejecutables de 64 bits por defecto. Y esos no serán reconocidos por Eclipse a cambio. Para resolver el error, debe establecer explícitamente su arquitectura en i386.

Ingrese las propiedades de su proyecto y agregue la opción de línea de comando "-arch i386" para cada C++ Linker, C++ Compiler y C Compiler. Después de una compilación limpia, debe tener claro depurar de nuevo. En las opciones de Enlazador, asegúrese de NO configurarlo como opción -Xlinker.

Original Source

Cuestiones relacionadas