He estado trabajando en la Celda procesador y estoy tratando de crear una estructura que contendrá un spe_context_ptr_t, el cual será utilizado en el hilo para lanzar una spe contexto y también llevará a cabo un puntero a otra cosa, que será pasado a la epd contexto dentro de la rosca (actualmente estoy tratando de hacer que un puntero genérico, pero en realidad va a ser un puntero a otra estructura en la que he definido). Cuando intento compilar me sale el siguiente error:

spu/../common.h:38: error: expected specifier-qualifier-list before 'spe_context_ptr_t'

//here is the offending line(s)

typedef struct _PTHREAD_BLOCK {
    spe_context_ptr_t * context; //Error happens here
    uintptr32_t  args; 
 } PTHREAD_BLOCK;
InformationsquelleAutor Paul Wicks | 2009-03-03

8 Comentarios

  1. 61

    El compilador no sabe que spe_context_ptr_t es un tipo. Compruebe que el typedef es en el ámbito cuando este código es compilado. Si te has olvidado de incluir el archivo de encabezado apropiados.

    • En mi caso (para un iPhone proyecto), el problema era que yo era incluidos los encabezados de tal manera que yo sospecho que fue el causante de que una dependencia circular. Lo resolvió declarar la clase antes de tiempo en mi .h archivo con la @parámetros de la clase. Una vez que hice esto, la dependencia circular fue resuelto y este error se fue. Sólo una nota, si alguien está viendo esto en XCode/Obj-C.
    • gracias, lo vi después de la respuesta. Pero puede usted explicar por qué esto es que funciona y cómo?
  2. 4

    Tuve el mismo mensaje de error, pero la solución es diferente.

    El compilador analiza el archivo de arriba a abajo.

    Asegúrese de que una estructura se define ANTES de usarlo en otra:

    typedef struct
    {
        char name[50];
        wheel_t wheels[4]; //wrong, wheel_t is not defined yet
    } car_t;
    
    typedef struct
    {
        int weight;
    } wheel_t;
    • Utiliza el ejemplo para mostrar la solución en lugar de (o además)
  3. 2

    Para iPhone cocoa-touch proyectos:

    He tenido este problema y gracias a Eric Farraro comentario, yo era capaz de resolverlo. Yo era la importación de una clase WSHelper.h en muchas de mis otras clases. Pero yo también la importación de algunas de esas mismas clases en mi WSHelper.h (circular, como dijo Eric). Así que, para solucionar esto que me mudé a la de las importaciones de mi WSHelper.h archivo a mi WSHelper.m archivo como ellos no eran realmente necesarias en el .h archivo de todos modos.

  4. 0

    Lo tengo con una importación de bucle:

    ---FILE B.h
    #import "A.h"
    @interface B{
      A *a;
    }
    @end
    
    ---FILE A.h
    #import "B.h"
    @interface A{      
    }
    @end
  5. 0

    Tiene a nombre de su estructura así:

    typedef struct car_t {
    
       char
    
       wheel_t
    
    } car_t;
  6. 0

    Yo era capaz de resolver esto mediante Gorgando a arreglar, pero en vez de mover las importaciones de distancia, me comentó cada uno de forma individual, la construcción de las app, y luego editado en consecuencia hasta que me deshice de ellos.

  7. 0

    @simpleBob

    ---FILE B.h
    #import "A.h"
    @interface B{
      A *a;
    }
    @end
    
    ---FILE A.h
    
    @class B;
    
    @interface A{      
    }
    @end

    código de arriba me ayudó a resolver. Podría alguien explicar qué está pasando aquí?

Dejar respuesta

Please enter your comment!
Please enter your name here