Errores de encabezados precompilados de Visual C ++

Actualizar:

¿Cuáles son los efectos de incluir stdafx.h en mis archivos de encabezado?

Comencé con un proyecto de C ++ en Linux / Eclipse CDT y lo importé a Visual C ++ / Windows.

En Visual C ++, comencé a usar encabezados precompilados para acelerar la compilación y definí stdafx.cpp y stdafx.h.

Aquí está mi stdafx.h

#pragma once

#include <string>
#include <vector>
#include <map>
...

y mi stdafx.cpp

#include "stdafx.h"

En cada archivo .h y .cpp, tengo lo siguiente:

#pragma once //if in a header file
#include "stdafx.h"

Tanto para la versión como para la depuración, tengo "Crear encabezado precompilado (/ Yc)". Se compiló bien en el modo de depuración, pero en el modo de lanzamiento sigue informando

error LNK2005: ___@@_PchSym_@00@UfhvihUaszlaDUwlxfnvmghUnnlUhixUnnlPeDUnnlPeDUivovzhvUvmgrgbOlyq@ already defined in A.obj

Si cambio ambos a "Usar encabezado precompilado", obtengo Debug y Release

fatal error C1854: cannot overwrite information formed during creation of the precompiled header in object file:

¿Alguien sabe lo que está pasando?

Respuestas a la pregunta(4)

Su respuesta a la pregunta