Update:
Каковы эффекты включения stdafx.h в мои файлы заголовков?
Я начал с проекта С++ в Linux/Eclipse CDT и импортировал его в Visual С++/Windows.
В Visual С++ я начал использовать предварительно скомпилированные заголовки для ускорения компиляции и определения 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: [email protected]@[email protected]@U[email protected] already defined in A.obj
Если я переключу оба на "Использовать предварительно скомпилированный заголовок", я получаю как Debug, так и Release
fatal error C1854: cannot overwrite information formed during creation of the precompiled header in object file:
Кто-нибудь знает, что происходит?