Работая над большим проектом, я столкнулся с этой проблемой: время от времени компоновщик отказывается «видеть» реализацию класса, выбрасывая исключения «символ не найден», где бы ни находились методы этого конкретного класса (Board).
Некоторые «технические» данные:
Я однажды использую #pragma в своих файлах .cpp.Я знаю, что в конце концов они ничего не делают (или не должны делать), поскольку файлы .cpp не включены в другие, но я разработал эту дурную привычку писать это в верхней части каждого файла кода, который я создаю.
Класс реализует ВСЕ методы, объявленные в его файле .h
Класс включает другие заголовки проекта, но включены те же самые заголовкиво многих файлах этот класс является ЕДИНСТВЕННЫМ, у которого есть проблемы с компиляцией.
Проблемы начали появляться вскоре после того, как я написал шаблонный класс, который мой класс включает и использует, но,как упоминалось выше, другие классы не имеют проблем с ним (поэтому я не могу сказать, действительно ли шаблон связан с проблемой).
и самая странная часть:
- При сбое компоновщика с исключением «символ не найден» (он делает это только НЕКОТОРЫЕ разы), если я переключу директиву #pragma Once в файле класса .cpp, следующая компиляция работает.Это означает, что иногда мне нужно комментировать «#pragma Once», чтобы получить успешную компиляцию, иногда мне нужно раскомментировать ее.
Если вам нужна дополнительная информация, такая как .h и.cpp файлы класса, я напишу это как можно скорее.
Спасибо за ваше время!
РЕДАКТИРОВАТЬ:
Дополнительная информация:
Когда проблема впервые появилась, я попытался прокомментировать как можно больше методов и полей класса, пытаясь изолировать проблему.В некоторых случаях удаление ссылки между классом и шаблоном приводило к хорошей компиляции, но в дальнейшем это не имело значения.Добавление экземпляров класса в разные части моего проекта (файлы / пространства имен / и т. Д.) Также не имело никакого значения.
Visual Studio установлена на C: \, проект находится на D: \, оба раздела - NTFS.
Это единственныйпроект, с которым у меня проблемы, я создал, скомпилировал и успешно выполнил множество других проектов до и после того, как возникла проблема с этим же стилем программирования.
Я пытался пересобрать весь проекти очистка файлов .obj вручную, когда проблема возникает, и это не имеет никакого значения.