Обычно это происходит из-за того, что 2 разных .cpp компилируются с разными ключами компилятора, но также используют одни и те же шаблоны. Сгенерированные экземпляры шаблонов могут отличаться тем, что они определяют / ссылаются, и если выбранный экземпляр не определяет / ссылается на те же символы, что и те, которые были отброшены, вы можете получить эту ошибку.
Проверьте, что все ваши .cpp скомпилированы с точно такими же ключами и определениями компилятора. Если это невозможно, измените порядок файлов .obj в командной строке компоновщика, в частности попробуйте переместить файлы .obj, упомянутые в сообщении об ошибке, в конец или начало списка файлов .obj.
EDIT:
Кроме того, если вы ссылаетесь на готовые библиотеки c ++, посмотрите, можете ли вы продублировать переключатели компилятора, используемые для сборки этих библиотек.