Я получаю LNK2005: уже определен в (...) ошибке при создании моего проекта в Visual Studio 2008. Я ссылался на другие связанные вопросы, но мой, похоже, немного более сложный из-за того, что ничего больше с количеством файлов, с которыми я работаю.Сложная ошибка LNK2005: уже определена C++
Во-первых, я думаю, что это будет полезно для меня, чтобы наметить #include заявления я имею в файлах моего проекта в формате [current_file] -> includes_this_file
Все мои файлы заголовков охраняемом с standard #ifndef [Header] #define [Header] ... #endif.
[Modulator.h]
прототипов класса модулятора
[ChorusUnit.h] -> Modulator.h
прототипы классов Chorus, которые имеют объекты члена типа модулятора
[AudioHandler.h] -> ChorusUnit.h
прототипы для класса AudioHandler, который имеет объекты-члены классов хора
[Chorus.cpp] -> AudioHandler.h
определение для членов модулятора и классов Chorus
[AudioHandler.cpp] -> Chorus.cpp
определение для членов AudioHandler класс
[ChorusUnit.cpp] -> AudioHandler.cpp
файл, содержащий функцию Main(), который на самом деле работает код мой проект.
Порядок включения включает в себя то, что все определения функций для классов, найденных в Modulator.h, ChorusUnit.h и AudioHandler.h, должны ссылаться на члены других классов, поэтому мне нужны были прототипы, определенные сначала для всех классы, чтобы видеть друг друга.
Ошибка указывает, что каждое определение, найденное в Chorus.cpp и AudioHandler.cpp в файле Chorus.obj, уже определено в AudioHandler.obj. Также существует еще один набор тех же типов ошибок, в котором говорится, что каждое определение, найденное в Chorus.cpp и AudioHandler.cpp в файле ChorusUnit.obj, уже определено в AudioHandler.obj.
Возможно, это довольно простое решение, но я не испытываю особого опыта (будучи главным образом программистом на Java) при связывании вообще. Что касается моих ограниченных знаний по этому вопросу, я только определил все один раз, и все было включено только один раз, поэтому я лично не понимаю, почему они уже определены. Некоторые, пожалуйста, просветите меня!
Я не помещаю #include [header] в .cpp, но все равно дает ссылку на проблему !! еще больше, он дает ошибку для класса в файле, который больше не имеет класса. попытался переместить файл в новое решение, все еще не работающее T_T – Katia