Ошибки скомпилированных заголовков Visual C ++
Обновить:
Каковы последствия включения stdafx.h в мои заголовочные файлы?
Я начал проект C ++ в Linux / Eclipse CDT и импортировал его в Visual C ++ / Windows.
В Visual C ++ я начал использовать предварительно скомпилированные заголовки для ускорения компиляции и определил stdafx.cpp и stdafx.h.
Вот мой stdafx.h
#pragma once
#include <string>
#include <vector>
#include <map>
...
и мой stdafx.cpp
#include "stdafx.h"
В каждом файле .h и .cpp у меня есть следующее:
#pragma once //if in a header file
#include "stdafx.h"
Для выпуска и отладки у меня есть «Создать предварительно скомпилированный заголовок (/ Yc)». Он отлично скомпилирован в режиме отладки, но в режиме релиза он продолжает отчитываться
error LNK2005: ___@@_PchSym_@00@UfhvihUaszlaDUwlxfnvmghUnnlUhixUnnlPeDUnnlPeDUivovzhvUvmgrgbOlyq@ already defined in A.obj
Если я переключаю оба на «Использовать предварительно скомпилированный заголовок», я получаю и Debug, и Release
fatal error C1854: cannot overwrite information formed during creation of the precompiled header in object file:
Кто-нибудь знает, что происходит?