2016-11-08 12 views
0

Мне удалось создать тестовый WinApp с использованием JsonCPP (https://github.com/open-source-parsers/jsoncpp) для разбора json-файла. Однако, когда я осуществил аналогичный в проекте MFC C++ с C/C++ -> предварительно скомпилированных заголовков параметра установлено значение Использование предварительно скомпилированных заголовков (/ Yu) в VS2008, он терпит неудачу с этой ошибкой:Как заставить JsonCPP работать в проекте MFC C++

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?

Если добавить «#include„stdafx.h“» к моему JsonTest.cpp, я получаю эту ошибку:

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])

Я пытался в течение почти 2 дней сейчас, но без успеха. Я добавил следующее в моем Additional Include Directories:

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

C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ включают

C: \ USR \ jsoncpp-мастер \ включают

+1

Это ошибка компоновщика. Если вы создали jsoncpp, у вас должен быть .lib-файл. Добавьте файл .lib в Свойства конфигурации проекта> Компоновщик> Ввод> Дополнительные зависимости. – acraig5075

ответ

1

Я кажется, что вы не включили JSONCPPs * .cpp файл в проект (они должны быть собраны и связаны). Если библиотека скомпилирована в статическую библиотеку, вы должны сообщить компоновщику, что нужно связывать.

+0

Я сконфигурировал свой проект как «Использовать MFC в статической библиотеке». Я сбросил папку dist в моем проекте, который включает json.h, json-forwards.h и jsoncpp.cpp, но этого оказалось недостаточно. Поэтому я следую вашему предложению, добавив json_vc71_libmtd.lib в свой проект и добавив это имя .lib в Linker-> Input-> Additional Dependencies и, удалив 3 json-файла, устранил проблему. – Key

 Смежные вопросы

  • Нет связанных вопросов^_^