Хорошо, поэтому я настраивал довольно простой класс в C ++ для обработки изменения функций, которые я хочу использовать с GLUT. Но у меня возникают проблемы при определении одной из открытых функций-членов в файле .cpp, который соответствует заголовочному файлу, содержащему определение класса.
Когда я определяю класс в заголовочном файле, я не получаю никаких ошибок компиляции. Но когда я определяю функцию в файле .cpp, с включенным заголовочным файлом, я получаю сообщение об ошибке "duplicate symbol SystemModule::setupGlutFunctions
". Насколько я могу судить, я использую правильный синтаксис для определения этой функции в отдельном файле, чем в оригинале. Вот код:
#include "system.h"
void SystemModule::setupGlutFunctions()
{
glutDisplayFunc(displayFunc);
glutReshapeFunc(reshapeFunc);
glutMouseFunc(mouseFunc);
glutKeyboardFunc(keyboardFunc);
glutSpecialFunc(specialFunc);
glutIdleFunc(idleFunc);
glutMotionFunc(motionFunc);
glutPassiveMotionFunc(passiveMotionFunc);
return;
}
Фактическое содержимое кода на самом деле не имеет значения, так как оно прекрасно компилируется, когда оно объявлено в файле .h внутри определения класса. Но когда я пытаюсь определить функцию в отдельном файле .cpp, я получаю сообщение об ошибке. Это публичная функция.
Я использую Xcode в Mac OS X 10.5. Кто-нибудь еще получил эту ошибку раньше? И кто-нибудь может сказать мне, если я делаю что-то неправильно в синтаксисе или мне нужно сделать что-то особенное в Xcode, чтобы это работало?
Очень благодарен,
E.