VS 2013错误C1853试图构建DLL(但不使用预编译头集)

时间:2016-02-01 17:29:15

标签: c visual-studio dll

您好我正在尝试使用VS2013社区版在C中构建最简单的DLL。我在选项中设置了“不使用预编译标题”(尽管项目创建向导似乎表明使用预编译标题是 强加,因为它是一个灰色的检查选项。无论如何,我决定关闭与项目属性相关的菜单。)但我仍然得到这个错误说

  

错误1错误C1853:'Release \ ExportDLLVars.pch'预编译头文件来自以前版本的编译器,或者预编译头是C ++,您从C使用它(反之亦然)D:\ devt \ CplusPlus \ Tests \ ExportDLLVars \ ExportDLLVars \ VarsSource.c 1 1 ExportDLLVars

我使用向导创建了一个默认的DLL项目,并添加了以下两个源文件

#define NAME_SIZE 80
struct _Person
{
char name[NAME_SIZE];
int tel_nb;
int age;
};

#ifdef EXPORTDLLVARS_EXPORTS
#define DLL_VAR __declspec(dllexport)
#else
#define DLL_VAR __declspec(dllimport)
#endif

DLL_VAR int get_age();
DLL_VAR void set_age(int a);
DLL_VAR extern struct _Person ThePerson;

作为头文件VarsSource.h和C文件是这样的:

#include "VarsSource.h"
DLL_VAR struct _Person ThePerson;
DLL_VAR int get_age(){ return ThePerson.age; }
DLL_VAR void set_age(int a){ ThePerson.age = a; }

1 个答案:

答案 0 :(得分:0)

该向导创建一个C ++项目。您的C文件无法与向导生成的C ++文件共享预编译头文件,这部分错误意味着:or the precompiled header is C++ and you are using it from C

尝试以下方法:

  • 对所有配置执行完全清理。

  • 从项目中删除stdafx.cpp文件。

  • 重新检查项目设置并确保Configuration Properties / C / C ++ / Precompiled Headers在项目级别关闭单独的C / C ++文件。