【问题标题】:How to make JsonCPP works in MFC c++ project如何使 JsonCPP 在 MFC c++ 项目中工作
【发布时间】:2016-11-08 18:47:27
【问题描述】:

我能够使用 JsonCPP (https://github.com/open-source-parsers/jsoncpp) 创建一个测试 WinApp 来解析一个 json 文件。 但是,当我在 VS2008 中将 C/C++ -> Precompiled Headers 选项设置为 Use Precompiled Header(/Yu) 的 MFC C++ 项目中实现类似功能时,它会因此失败错误:

c:\users\user1\documents\visual studio 2008\projects\jsonutility\jsonutility\jsonTest.cpp(371):致命错误 C1010:查找预编译头文件时意外结束。您是否忘记在源代码中添加“#include "stdafx.h""?

如果我将 '#include "stdafx.h"' 添加到我的 JsonTest.cpp,我会收到此错误:

JsonTest.obj : error LNK2019: unresolved external symbol "public: class Json::Value & __thiscall Json::Value::operator[](char const *)" (??AValue@Json@@QAEAAV01@PBD@ Z) 在函数“public: void __thiscall JsonTest::readConfig(char const *)”中引用 (?readConfig@JsonTest@@QAEXPBD@Z)

我已经尝试了将近 2 天,但没有成功。 我在附加包含目录中添加了以下内容:

C:\Users\User1\Documents\Visual Studio 2008\Projects\JsonUtility\ReadingJson\dist

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include

C:\usr\jsoncpp-master\include

【问题讨论】:

  • 这是一个链接器错误。如果你已经构建了 jsoncpp,你应该有一个 .lib 文件。将 .lib 文件添加到项目的 Configuration Properties > Linker > Input > Additional Dependencies。

标签: visual-c++ visual-studio-2008 mfc jsoncpp


【解决方案1】:

我好像您没有将 JSONCPPs *.cpp 文件包含到您的项目中(它们必须被编译和链接)。如果库被编译成静态库,你必须告诉链接器要链接什么。

【讨论】:

  • 我将我的项目配置为“在静态库中使用 MFC”。我在我的项目中删除了 dist 文件夹,其中包括 json.h、json-forwards.h 和 jsoncpp.cpp,但这似乎还不够。因此,我遵循您的建议,将 json_vc71_libmtd.lib 添加到我的项目中,并将该 .lib 名称添加到 Linker->Input->Additional Dependencies 并删除 3 个 json 文件,它解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多