Как избавиться от конфликта имен?
Делал оболочку для часто используемых функций OpenGL. Сначала, все директивы, объявления и реализации находились в файле реализации формы и все работало. Затем, перенес этот код в отдельный модуль и подключил его к файлу реализации формы, в результате, проект перестал собираться. Компилятор сообщает о повторных объявлениях в хэдерах GL. Знаю, что в таких случаях определенным образом формируют директивы препроцессора, но как конкретно, не знаю. Поделитесь ссылками на примеры со всеми возможными способами обращения с директивами или укажите универсальный прием решения в моем случае.
Код:
// БЫЛО
//-------------------------------------
//------------ Unit1.cpp ------------
#include <gl.h>
#include <glu.h>
// Объявление класса инкапсулирующего
// функции OpenGL
// ...
// Реализация класса инкапсулирующего
// функции OpenGL
// ...
// СТАЛО
//-------------------------------------
//------------ Unit2.h --------------
#ifndef Unit2H
#define Unit2H
#include <gl.h>
#include <glu.h>
// Объявление класса инкапсулирующего
// функции OpenGL
// ...
#endif
//------------ Unit2.cpp ------------
#include "Unit2.h"
// Реализация класса инкапсулирующего
// функции OpenGL
// ...
//------------ Unit1.cpp ------------
#include "Unit2.h"
//-------------------------------------
//------------ Unit1.cpp ------------
#include <gl.h>
#include <glu.h>
// Объявление класса инкапсулирующего
// функции OpenGL
// ...
// Реализация класса инкапсулирующего
// функции OpenGL
// ...
// СТАЛО
//-------------------------------------
//------------ Unit2.h --------------
#ifndef Unit2H
#define Unit2H
#include <gl.h>
#include <glu.h>
// Объявление класса инкапсулирующего
// функции OpenGL
// ...
#endif
//------------ Unit2.cpp ------------
#include "Unit2.h"
// Реализация класса инкапсулирующего
// функции OpenGL
// ...
//------------ Unit1.cpp ------------
#include "Unit2.h"
Вообще-то, обычно cpp с реализацией инклюдится в заголовочный файл.
Да и так тоже делал. Может проект не пересобрался?
Если я понял правильно проблему - то тебе нужно открыть для себя пространства имен в С++ и именно его использовать