更新:
在我的头文件中包含stdafx.h有什么影响?
我开始在Linux/Eclipse CDT上进行C++项目,并将其导入到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:
有人知道发生了什么吗?