问题一、在MFC工程中导入cJson.c 编译时报以下错误:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C1853 “x64\Release\xxx.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) xxx E:\xxx\cJSON.c 1
解决办法:
不使用编译头
问题二、在MFC工程中导入cJson.c 编译时报以下错误:
1、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1169 找到一个或多个多重定义的符号 xxx E:\xxx\xxx.dll 1
2、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2005 DllMain 已经在 MSVCRT.lib(dll_dllmain_stub.obj) 中定义 xxx E:\xxx\mfcs140u.lib(dllmodul.obj) 1 、
解决办法:
在工程配置文件.vcxproj中修改cjson.c的编译顺序
把以下
<ItemGroup>
<ClCompile Include="cJSON.c" />
<ClCompile Include="xxx.cpp" />
<ClCompile Include="yyy.cpp" />
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="cJSON.h" />
<ClInclude Include="xxx.h" />
<ClInclude Include="yyy.h" />
</ItemGroup>
修改顺序为:
<ItemGroup>
<ClCompile Include="xxx.cpp" />
<ClCompile Include="yyy.cpp" />
<ClCompile Include="cJSON.c" />
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="xxx.h" />
<ClInclude Include="yyy.h" />
<ClInclude Include="cJSON.h" />
</ItemGroup>