C ошибка компиляции - PullRequest
       1

C ошибка компиляции

1 голос
/ 05 апреля 2011

Что означает следующая ошибка при компиляции.

Tilemap.h:21: error: conflicting types for ‘ThreeDWorld’
Tilemap.h:21: error: previous declaration of ‘ThreeDWorld’ was here
Tilemap.h:29: error: conflicting types for ‘CGPoint’
Tilemap.h:29: error: previous declaration of ‘CGPoint’ was here
Tilemap.h:31: error: conflicting types for ‘tileForCoordinates’
Tilemap.h:31: error: previous declaration of ‘tileForCoordinates’ was here

Почему выдает ошибку за то, что там было? Мой исходный файл имеет один экземпляр как таковой

typedef struct
{
int xPosition;
int yPosition;
} 
CGPoint;

Ответы [ 3 ]

5 голосов
/ 05 апреля 2011

Вы включаете заголовочный файл из более чем одного места?Используйте защиту в заголовочном файле, если это так.

Например, в Tilemap.h:

 #ifndef TILEMAP_H
 #define TILEMAP_H

 // header file contents

 #endif /* TILEMAP_H */
2 голосов
/ 05 апреля 2011

Вы включили заголовочный файл дважды.

В своем собственном коде я обернул все заголовочные файлы

#ifndef HEADER_FILE_NAME
#define HEADER_FILE_NAME

#endif

чтобы избежать таких ошибок.

2 голосов
/ 05 апреля 2011

Наклейте некоторые защитные элементы на свои заголовки.

Ваше определение типа появляется более одного раза в вашем модуле компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...