2016-11-08 2 views
0

Ich konnte einen Test WinApp mit JsonCPP (https://github.com/open-source-parsers/jsoncpp) erstellen, um eine JSON-Datei zu analysieren. Wenn ich jedoch ähnlich in einem MFC C++ Projekt mit C/C++ implementiert -> vorkompilierte Header Option auf Verwenden eines vorkompilierten Headers (/ Yu) in VS2008, schlägt es mit diesem Fehler:Wie man JsonCPP in MFC C++ Projekt funktioniert

c:\users\user1\documents\visual studio 2008\projects\jsonutility\jsonutility\jsonTest.cpp(371) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

wenn ich ‚# include‚stdafx.h‘‘ zu meinem JsonTest.cpp hinzufügen, werde ich diesen Fehler:

JsonTest.obj : error LNK2019: unresolved external symbol "public: class Json::Value & __thiscall Json::Value::operator[](char const *)" ([email protected]@@[email protected]@Z) referenced in function "public: void __thiscall JsonTest::readConfig(char const *)" ([email protected]@@[email protected])

ich jetzt fast 2 Tage versucht, aber ohne Erfolg. hatte ich Folgendes hinzugefügt in meinem weiteren Verzeichnisse enthalten:

C: \ Benutzer \ User1 \ Dokumente Visual Studio 2008 \ Projects \ JsonUtility \ ReadingJson \ dist

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

C: \ usr \ jsoncpp-Master \ include

+1

Das ist ein Linker-Fehler. Wenn Sie jsoncpp erstellt haben, sollten Sie eine .lib-Datei haben. Fügen Sie die .lib-Datei zu den Konfigurationseigenschaften Ihres Projekts hinzu> Linker> Eingabe> Zusätzliche Abhängigkeiten. – acraig5075

Antwort

1

ich scheint, wie Sie nicht die JSONCPPs * CPP-Datei in Ihrem Projekt enthalten waren (sie haben werden kompiliert und gelinkt). Wenn die Bibliothek in eine statische Bibliothek kompiliert wird, müssen Sie dem Linker mitteilen, was er verknüpfen soll.

+0

Ich habe mein Projekt als "Use MFC in einer statischen Bibliothek" konfiguriert. Ich habe den Ordner dist in meinem Projekt gelöscht, der json.h, json-forwards.h und jsoncpp.cpp enthält, aber es schien nicht genug zu sein. Also folge ich deinem Vorschlag, indem ich json_vc71_libmtd.lib zu meinem Projekt hinzufüge und diesen .lib-Namen zu Linker-> Input-> Additional Dependencies hinzufüge und die 3 json-Dateien entferne, das Problem wurde behoben. – Key