with oxygen kepler for developers descargar eclipse eclipse-cdt

oxygen - eclipse with jsdt



Eclipse Indigo CDT: la funciĆ³n no se pudo resolver (5)

Ese parece ser un problema que muchos otros han tenido antes con el eclipse CDT. A veces, cerrar el eclipse y luego volver a iniciarlo es suficiente para ayudar. Si ese no es el caso, mira lo que tengo a continuación:

Compilación bien, pero el contenido del eclipse ayuda a tener problemas.

Esto parece ridículo, pero han pasado 2 días ... en algún lugar después de actualizar de Ubuntu 10.04 a 10.11 y de Eclipse Helios a Eclipse Indigo, me quedé atascado con el siguiente problema:

Descripción del problema:

Estoy tratando de usar una función en math.h llamada isinf (), pero el problema también ocurre con cosas como isnan ().
El programa compila bien en la línea de comandos usando make y fine en eclipse usando build.
Pero si abro el archivo del programa en eclipse, se informa de que no puede resolver la llamada a la función isinf ().
Si simplemente inserto el contenido del programa en un nuevo proyecto y un nuevo archivo fuente, el error aparece inmediatamente.
Este problema no ocurrió en 11.04 con Eclipse Helios CDT

Preguntas:

¿Por qué estos errores solo se informan cuando se abre el archivo del programa y no cuando se compila el programa? ¿Por qué los errores no detectados se ejecutan desde la línea de comandos?
¿Hay alguna solución / solución disponible?

Información de la versión

Linux Ubuntu 10.11 de 64 bits
Eclipse CDT Indigo, Service Release 1, id de compilación: 20110916-0149
(También utilizando Eclipse EE Indigo - si eso marca una diferencia)
GNU Make 3.81
gcc 4.6.1-9Ubuntu3

Duplicar:

Por favor, encuentre los dos archivos que necesitará replicar a continuación:

Paso 0. Verifica que todo esté bien fuera de Eclipse
Copia el archivo fuente adjunto y crea el archivo.
crear un directorio, por ejemplo, Mkdir FunTest
Guarde el archivo fuente en ''Test.cpp'' y el makefile como ''makefile''
Abra un indicador de comando y navegue al directorio, por ejemplo, FunTest
Introduce ''make''
Introduzca ./TestOut
El programa responde "no es infinito"

Paso 1. Crea el proyecto en Eclipse.
Open Eclipse
Seleccione Archivo | Nuevo | Proyecto MakeFile con código existente
Haga clic en Examinar: navegue hasta el directorio (FunTest) y haga clic en Aceptar.
Seleccione ''Linux GCC'' en el selector de Toolchain
Haga clic en Finalizar

Paso 2. Encuentra el error
Haga clic en Construir todo (Ctrl-B) - compilaciones de proyecto sin errores
Abra el proyecto en el explorador de proyectos para mostrar el archivo en el directorio
Haga doble clic en el archivo "Test.cpp"
Observe el ícono de error al lado de la línea de pruebas para el infinito
Tenga en cuenta los 2 mensajes de error:

Semantic error: Function _isinff could not be resolved Semantic error: Function _isinfl could not be resolved

Test.cpp:

include <math.h> int main(int argc, char **argv) { int TestNum = 10; if (isinf(TestNum) == 0) printf("Not infinite/n"); return 0; }

makefile

# Specify the compiler CC = g++ # Specify the compiler flags CFLAGS += -c # Specify the files making up the application SOURCES = Test.cpp OBJECTS = $(SOURCES:.cpp=.o) EXECUTABLE = TestOut all: $(EXECUTABLE) $(EXECUTABLE): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ .cpp.o: $(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ install: @echo "Build complete!"


He experimentado problemas similares con los errores de informe de CDT, aunque el código compilado bien dentro de Eclipse Indigo.

Proyecto> Propiedades> Configuraciones> Analizadores binarios> "GNU Elf Parser"

Ayudó en mi caso. Tuve el "Elf Parser" revisado.


Para mí, se resolvió agregando una carpeta específica de '' Ubicación de origen '' y eliminando la predeterminada. En Luna, está bajo:

Proyecto> Propiedades> C / C ++ General> Rutas y símbolos> Ubicación de origen


Te falta la opción -lm en tus preferencias de compilación. Project-> Properties-> Settings-> Miscleanous-> Other (linker) flags []


Verifique su include<math.h> : si está usando include<math.h> cámbielo para include<cmath> . Lo mismo para stdio.h y stdlib.h , debe reemplazar por cstdio y cstdlib . Otra opción puede ser cambiar su proyecto a un proyecto de C en lugar de a C ++.