Ошибки скомпилированных заголовков 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:

Кто-нибудь знает, что происходит?

Ответы на вопрос(4)

Ваш ответ на вопрос