WedX - журнал о программировании и компьютерных науках

Использовать только дерево свойств из библиотек повышения

Мне нужно проанализировать большой файл XML, используя дерево свойств в библиотеках повышения. Как использовать их ТОЛЬКО вместо включения целых библиотек повышения?


  • stackoverflow.com/a/10818989/453271 может помочь. Короче говоря, вы можете свести к минимуму набор библиотек повышения, включив только те, от которых зависит Boost.PropertyTree. Вам все равно понадобятся основные заголовки с общими определениями препроцессора и т.д. 19.08.2018
  • @AndriyTylychko есть еще одна проблема, я не могу включить ее в свой проект qt, и это дает мне ошибку, включая некоторые файлы, такие как этот: mini-boost\libs\mpi\src\python\collectives.cpp:14: error: C1083 : Не удается открыть включаемый файл: 'boost/python.hpp': Нет такого файла или каталога 19.08.2018

Ответы:


1

Вам вообще не нужно включать все библиотеки повышения. Например, если вы посмотрите краткое руководство в разделе соответствующую страницу документации по увеличению для деревьев свойств XML, вы видите, что вам нужно только включить следующее:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

Чтобы получить полностью функциональный код учебника, скомпилируйте его без ошибок.

Итак, это отвечает на ваш вопрос:

Как использовать их ТОЛЬКО вместо включения целых библиотек повышения?

Но если вы на самом деле имели в виду необходимость упаковывать/развертывать все библиотеки boost, а не включать все библиотеки boost, тогда у вас < href="https://www.boost.org/doc/libs/1_68_0/tools/bcp/doc/html/index.html" rel="nofollow noreferrer">инструмент bcp, сама является частью boost (также упоминается это сообщение), чтобы помочь вам разобраться во всем этом и точно знать, какие части библиотеки необходимы для использования библиотеки property_tree.

Я запустил это для вас:

bcp --list property_tree

и результаты хорошие ... слишком много времени, чтобы вставить этот ответ. Например, сама библиотека property_tree зависит от довольно большой части всех библиотек повышения.

Таким образом, не будет такой заметной разницы между упаковкой всего повышения как части вашего проекта и отправкой только того, что необходимо для сборки property_tree.

Итог: если все, что вам нужно, это возможности синтаксического анализа XML, а все возможности Boost слишком велики для вас, я предлагаю проверить одну из множества библиотек XML например, TinyXML-2 — это «простой, небольшой, эффективный анализатор XML на C++, который можно легко интегрировать в другие программы».

19.08.2018
  • Мне нужно только дерево свойств, потому что проект слишком мал, и нет смысла добавлять все библиотеки повышения, поэтому я хочу использовать только эту библиотеку. 19.08.2018
  • @AlaaAgwa Отредактировано, надеюсь, лучше ответит на ваши размышления. 19.08.2018
  • большое спасибо, я сделал то, что вы мне сказали, и это работает, но я не могу скомпилировать его в моем проекте qt, и он дает мне недостающие файлы, такие как этот: mini-boost\libs\mpi\src\python\collectives.cpp:14 : ошибка: C1083: Не удается открыть включаемый файл: 'boost/python.hpp': Нет такого файла или каталога 19.08.2018
  • @SkepticalEmpiricist Нет. Похоже, OP компилирует библиотеку. Это не может работать, так как все части содержат только заголовки. 19.08.2018
  • Большое спасибо @SkepticalEmpiricist, все работает, как вы сказали :) 27.08.2018
  • @AlaaAgwa Рад, что помог. Кстати, у вас достаточно репутации, чтобы проголосовать вместе с принятием ответа, если вы этого хотите. 27.08.2018
  • @SkepticalEmpiricist Я принял это и тоже проголосовал за это;) 27.08.2018
  • @AlaaAgwa Привет, приятель :) 27.08.2018

  • 2

    Прямой вопрос: это только заголовок, так что никакого реального смысла.

    Что гораздо важнее, так это:

    Мне нужно разобрать большой файл XML с помощью дерева свойств

    Вам нужно выбрать один:

    1. Мне нужно разобрать большой файл XML
    2. Мне нужно [...] использовать дерево свойств [red.]

    Дерево свойств Boost НЕ является библиотекой XML. Если вам нужно проанализировать XML общего назначения, вы не можете использовать Boost Property Tree, иначе вы очень скоро пожалеете об этом выборе. См. раздел Какой синтаксический анализатор XML следует использовать в C++?`

    19.08.2018
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]